#python #powershell #while-loop
Вопрос:
Я написал скрипт на python и преобразовал его в исполняемый файл python, который каждую секунду печатает имя приложения и время. Также добавьте одну функцию расписания, которая выполняется каждые 30 секунд.
Он работал довольно хорошо через час, когда я проверил еще раз, скрипт python был приостановлен (или завис). Когда я нажал [Enter], он снова начал выполняться, как обычно. Сценарий отлично работал в течение 1 часа. В чем причина паузы?
Мой Код
from win32gui import GetForegroundWindow
import psutil
import time, os, datetime, requests, json, schedule
import win32process
import csv
import getpass
data = {}
process_time = {}
timestamp = {}
data['User'] = getpass.getuser()
data['Date'] = datetime.datetime.now().strftime("%d/%m/%Y")
data['Time'] = datetime.datetime.now().strftime("%I:%M %p")
def show_name():
l = []
for a, t in process_time.items():
e = {}
e['AppName'] = a
e['Time'] = t
l.append(e)
data["Data"] = l
data=json.dumps(data))
print(data)
schedule.every(30).seconds.do(show_name)
while True:
try:
current_app = psutil.Process(win32process.GetWindowThreadProcessId(GetForegroundWindow())[1]).name().replace(".exe", "")
timestamp[current_app] = int(time.time())
time.sleep(1)
if current_app not in process_time.keys():
process_time[current_app] = 0
process_time[current_app] = process_time[current_app] int(time.time())-timestamp[current_app]
print(process_time)
schedule.run_pending()
time.sleep(1)
service_directory = os.path.abspath(os.path.dirname(__file__)) '/test1.csv'
with open(service_directory, 'w', encoding='UTF8', newline='') as f:
for key in process_time.keys():
f.write("%s,%sn"%(key, process_time[key]))
except:
pass