Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2023, 08:33   #1
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию Выключить ПК по окончанию работы скрипта

здравствуйте, есть скрипт на Python, его время работы 4 часа - нужно сделать около 700 тыс. замен и это количество будет только увеличиваться)), работаю на ноутбуке ОС вин 10, в конце скрипта указано:
Код:
# /f - этот параметр заставляет операционную систему принудительно завершить все запущенные процессы и выключить компьютер
os.system('shutdown /s /t 60 /f')
так увы задуманное - работать до конца скрипта и выключить ПК НЕ происходит, как это сделать?
то, что НЕ сделана работа выясняется так как не записан файл с результатом, да и пйчарм НЕ закрыт, именно в нём я запускаю код
Ципихович Эндрю на форуме Ответить с цитированием
Старый 20.12.2023, 16:06   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Попробуйте из PyCharm запустить такой скрипт (который сначала планирует перезагрузку, а потом отменяет), чтобы проверить, хватает ли прав на такую операцию:
Код:
import os
import time

os.system('shutdown /s /t 60 /f')
time.sleep(10)
os.system('shutdown /a')
Если файл с результатом не записан, так может быть скрипт сломался раньше, чем дошел до перезагрузки. В консоли PyCharm никаких сообщений об ошибках нету? Или ноутбук ушел в сон посреди работы скрипта?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 20.12.2023, 16:11   #3
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
так может быть скрипт сломался раньше, чем дошел до перезагрузки
-нет
Цитата:
Сообщение от BDA Посмотреть сообщение
В консоли PyCharm никаких сообщений об ошибках нету?
-нет
Цитата:
Сообщение от BDA Посмотреть сообщение
ноутбук ушел в сон посреди работы скрипта?
-ну конечно да, 4 часа это же много, посему, наверное батник тоже не выручит?
Код:
with open(patch_js + 'Выключение_ПК.bat', 'w', encoding='utf-8') as f:
    f.write('shutdown.exe -s -t 00')
os.startfile(patch_js + 'Выключение_ПК.bat')
Ципихович Эндрю на форуме Ответить с цитированием
Старый 20.12.2023, 16:20   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от Ципихович Эндрю Посмотреть сообщение
батник тоже не выручит?
Нет, по идее. Выполнение просто не дойдет до этого момента. Стоит отключить сон:
"Панель управления - Оборудование и звук - Электропитание - Настройка схемы электропитания - Переводить компьютер в спящий режим: Никогда".
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 20.12.2023, 16:48   #5
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
import os
import time

os.system('shutdown /s /t 60 /f')
time.sleep(10)
os.system('shutdown /a')
отработал как нужно - отменил
Ципихович Эндрю на форуме Ответить с цитированием
Старый 20.12.2023, 16:50   #6
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
по идее. Выполнение просто не дойдет до этого момента. Стоит отключить сон:
"Панель управления - Оборудование и звук - Электропитание - Настройка схемы электропитания - Переводить компьютер в спящий режим: Никогда".
ну тоже НЕ гут, иногда такая опция НЕ помешает, чтобы он неё избавляться
Ципихович Эндрю на форуме Ответить с цитированием
Старый 20.12.2023, 20:29   #7
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Ципихович Эндрю
Цитата:
ну тоже НЕ гут,
Есть возможность управлять состоянием питания ПК программно, например из CMD.

Скрипт, например, на CMD, работает параллельно с вашим процессом.
Он контролирует работу приложения, а при необходимости, и наличие результата работы.
Можно задать временной интервал, по истечение которого проверяется работа приложения.

Т.е., устанавливаем режим "не засыпать".
Проверяем работу приложения (оно должно быть запущено).
Ожидаем некоторое время и проверяем работу приложения (в цикле).
По завершении работы восстанавливаем режим "нормального сна" и "укладываем" ПК - спать или выключиться.
Если время ожидания истекло, то ...

Флагом завершения работы приложения может быть файл, например, результата. Тогда, перед "укладкой" ПК, приложения можно завершить принудительно.

PS: Это можно сделать и на VBScript
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 20.12.2023, 20:35   #8
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Это можно сделать и на VBScript
подскажите текст CMD файла, спасибо
Ципихович Эндрю на форуме Ответить с цитированием
Старый 20.12.2023, 20:51   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Сам не пробовал (у меня сон отключен), но можно попробовать установить wakepy "pip install wakepy" и:
Код:
from wakepy import keep

with keep.running() as k:
    # Do something that takes a long time
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 20.12.2023, 20:58   #10
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

ок опробую-напишу
Ципихович Эндрю на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неправильный итог работы скрипта satfan Python 16 02.02.2022 09:25
Как выключить работу процедуры(выключить\переключить)? IronFist Помощь студентам 7 31.05.2012 20:46
Уменьшение скорости работы скрипта amdbodia PHP 3 16.01.2011 20:49
ajax индикатор работы скрипта ssdm JavaScript, Ajax 3 08.04.2010 17:04
Как вывести результат работы php скрипта eldar Работа с сетью в Delphi 21 08.08.2008 14:16