Как отключить компьютер с помощью 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 комментарий