Как выключить компьютер с помощью python
Перейти к содержимому

Как выключить компьютер с помощью python

  • автор:

Как отключить компьютер с помощью Python

Я написал скрипт на Python, который в конечном итоге должен отключить компьютер. Эта строка является частью этого:

os.system("shutdown /p") 

Она делает некоторое отключение, но остается в включенной панели управления Windows (где пользователь может переключать пользователей компьютера). Есть ли способ полностью отключить компьютер? Я пробовал другие методы os.system(«отключение ___») без успеха. Есть ли другой метод, который может помочь? python windows cmd shutdown

Поделиться Источник 02 декабря 2015 в 10:02

11 ответов

import os os.system('shutdown -s') 

Это будет работать для вас.
Поделиться 02 декабря 2015 в 18:55

import os os.system('sudo shutdown now') 

или: если вы хотите немедленно отключиться без запроса пароля sudo , используйте следующее для Ubuntu и аналогичных дистрибутивов:

os.system('systemctl poweroff') 

Поделиться 14 декабря 2016 в 22:31

Используя ctypes , вы можете использовать функцию ExitWindowsEx для отключения компьютера. Описание из MSDN:

Выключает интерактивного пользователя, отключает систему или отключает и перезапускает систему.

Сначала некоторый код:

import ctypes user32 = ctypes.WinDLL('user32') user32.ExitWindowsEx(0x00000008, 0x00000000) 
  • Получите библиотеку ctypes
  • ExitWindowsEx предоставляется user32.dll и должен быть загружен через WinDLL()
  • Вызовите функцию ExitWindowsEx() и передайте необходимые параметры.

Parameters:

Все аргументы являются шестнадцатеричными.

Первый аргумент, который я выбрал:

отключает систему и отключает питание. Система должна поддерживать функцию отключения питания.

Есть много других возможных функций, см. документацию для полного списка.

Второй аргумент должен указывать причину отключения, которое зарегистрирована системой. В этом случае я установил его для Другой проблемы , но есть много вариантов выбора. См. этот для полного списка.

Создание кросс-платформенности:

Это можно объединить с другими методами, чтобы сделать его кросс-платформенным. Например:

import sys if sys.platform == 'win32': import ctypes user32 = ctypes.WinDLL('user32') user32.ExitWindowsEx(0x00000008, 0x00000000) else: import os os.system('sudo shutdown now') 

Это зависимая функция Windows (хотя у Linux/Mac будет эквивалент), но это лучшее решение, чем вызов os.system() , так как пакетный скрипт с названием shutdown.bat не будет конфликтовать с командой (и в то же время вызовет угрозу безопасности).

Кроме того, он не беспокоит пользователей сообщением «Вы собираетесь выйти менее чем за минуту» , как делает shutdown -s , но выполняется без проблем.

В качестве вспомогательного замечания используйте подпроцесс вместо os.system() (см. Разница между subprocess.Popen и os.system )

В качестве побочного замечания: Я создал WinUtils (только для Windows), что немного упрощает это, однако оно должно быть быстрее (и не требует Ctypes), так как оно построено в C.

Example:

import WinUtils WinUtils.Shutdown(WinUtils.SHTDN_REASON_MINOR_OTHER) 

Поделиться 12 июня 2018 в 19:47

Документ Python рекомендует использовать subprocess вместо os.system. Он предназначен для замены старых модулей, таких как os.system и других.

import subprocess subprocess.run(["shutdown", "-s"]) 

А для пользователей Linux -s не требуется, они могут просто использовать

import subprocess subprocess.run(["shutdown"]) 

Поделиться 28 августа 2021 в 08:07

Единственный вариант, который действительно работает для меня без проблем, это:

import os os.system('shutdown /p /f') 

Поделиться 03 февраля 2019 в 05:00

Попробуйте этот фрагмент кода:

import os shutdown = input("Do you wish to shutdown your computer ? (yes / no): ") if shutdown == 'no': exit() else: os.system("shutdown /s /t 1") 

Поделиться 29 мая 2020 в 12:42

Этот код на Python может выполнить действие:

import os os.system('sudo shutdown -h now') 

Поделиться 30 декабря 2018 в 20:57

Вот пример для отключения Windows:

import os os.system("shutdown /s /t 1") 

Вот пример для отключения Linux (по разрешению root):

import os os.system("shutdown now -h") 

Поделиться 30 января 2020 в 07:11

График установки pip

В случае, если вы также хотите запланировать это:

import schedule import time import os when= "20:11" print("The computer will be shutdown at " + when + "") def job(): os.system("shutdown /s /t 1") schedule.every().day.at(when).do(job) while True: schedule.run_pending() time.sleep(1) 

Поделиться 13 мая 2021 в 01:49

Как вы хотите, winapi можно использовать.

import win32api,win32security,winnt win32security.AdjustTokenPrivilege(win32security.OpenProcessHandle(win32api.GetCurrentProcess(),win32security.ADJUST_TOKEN_PRIVILEGE | win32security.TOKEN_QUERY),False,[(win32security.LookupPrivilegeValue(None,winnt.SE_SHUTDOWN_NAME),winnt.SE_PRIVILEGE_ENABLE)]) win32api.InitateSystemShutdown(None,"Text",second,Force_Terminate_Apps_as_boolean,Restart_as_boolean) 

Поделиться 26 июня 2020 в 13:11

В случае с Windows, использование os.system(«shutdown /p») работает, но иногда создает быстро мигающее окно терминала (см. эту точную ситуацию).

В этом случае лучше использовать subprocess с флагом создания процесса:

import subprocess subprocess.Popen(r"C:\Windows\System32\shutdown.exe /p", creationflags=subprocess.CREATE_NO_WINDOW) 

Как выключить пк с помощью python?

Вы можете выключить компьютер с помощью Python, используя стандартную библиотеку `os`. Однако обратите внимание, что для выполнения этой операции вам может потребоваться права администратора (root или аналогичные в зависимости от вашей операционной системы).

Вот пример кода для выключения компьютера с использованием Python в PyCharm:

import os 



# Проверяем операционную систему и выполняем соответствующую команду выключения

if os.name == 'posix': # Для Unix/Linux

os.system('shutdown -h now')

elif os.name == 'nt': # Для Windows

os.system('shutdown /s /t 0')

else:

print("Данная операционная система не поддерживается")

Этот код определяет операционную систему и выполняет соответствующую команду для выключения. Важно помнить, что для выполнения этой операции могут потребоваться права администратора, и код должен быть запущен с соответствующими привилегиями.

Пожалуйста, будьте осторожны при использовании этого кода, так как неправильное выключение компьютера может вызвать потерю данных.

import os
os.system("shutdown /s /t 0")

Таймер для выключения компьютеров на Python 3

Нужен простой скрипт для выключения компьютеров, чтобы когда компьютер включался он проверял время и начал отсчет до конкретного времени и отключился.

Отслеживать
3,189 2 2 золотых знака 24 24 серебряных знака 45 45 бронзовых знаков
задан 21 июн 2018 в 9:26
1 1 1 серебряный знак 1 1 бронзовый знак
Зачем для этого Python? Хватит написать bat’ник в пару строк и запихать в автозапуск.
21 июн 2018 в 9:36
наверно можно и на powershell это организовать .
21 июн 2018 в 10:00

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Например это можно сделать бесконечным циклом, который будет проверять текущее время с желаемым

import os import time def shutdown(offPC=19): while time.gmtime().tm_hour < offPC: time.sleep(60) # ожидание 1 минуту os.system("shutdown -s") 

Также можно попробовать после включения запускать скрипт, вычислять время в секундах до желаемого времени отключения и формировать такую запись(отложенное выключение):

os.system("shutdown -s -t xx") 

Где XX время в секундах до отключения.

Как написать выключение компа?

Мне нужно чтобы после последней команды print через 2 минуты компьютер выключился, а как бы это получше написать пока не понял. Потому что я так понимаю если я вставлю этот код в свою программу, то выйдет что он будет с момента запуска отсчитывать время.
Знаю, вопрос дурацкий, но я уже в тупике=/

  • Вопрос задан 26 апр. 2023
  • 1810 просмотров

1 комментарий

Простой 1 комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *