У меня странная проблема с Python (3.x):
По сути, я просто хочу создать таймер, который вызывает внешнюю программу (.exe) в заранее определенное время - (упрощенно ниже, кроме того, есть обратный отсчет):
time.sleep(y)
x=popen("pathto.exe")
Если я проверяю свой код, все работает точно так, как я хочу, НО только для маленьких y. При больших значениях y (подождите более нескольких часов) Python не выполняет команду popen (но также нет ошибок). Любой другой «нормальный» код после команды popen (например, уведомление по электронной почте в моем случае) работает нормально.
Я не совсем уверен, что это Windows (я работаю на 64-битной Windows 7, отключил все функции энергосбережения, о которых я знаю) или проблема с Python, но пока не могу найти решение:
Я попробовал несколько дополнительных аргументов для popen (Shell / no Shell и т. Д.) И попытался открыть программу / определить X перед периодом ожидания и снова закрыть его после этого, но, к сожалению, ничего не решило.
Большое спасибо!
Редактировать: более подробный пример кода:
while 1:
if time.mktime(trade2)<=time.time():
break
else:
dif=time.mktime(trade2)-time.time() # this is just for a visible countdown
aus=time.gmtime(dif)
sys.stdout.flush()
print("\b\b\b\b\b\b\b\b\b", end="\r")
print(aus[3],aus[4],aus[5], sep=":",end="")
time.sleep(0.5)
x=subprocess.Popen("c:/xyz/abc.exe")
print("Sending Mail...")
print () ВСЕГДА выполняется как положено, Popen только при обратном отсчете менее 1-2 часов.