程序会无限循环地检查当前时间是否与.csv 文档中指定的时间匹配,如果匹配,则执行打开链接的命令。同样,如果已到达 .csv 文档中指定的结束时间,则浏览器将关闭。我使用 pyinstaller.exe 组装了该程序,它运行了大约一个小时,然后关闭。请帮助我了解可能是什么原因。这是nama.csv的链接
def CSV_time():#Из CSV файла переменные получают время
while True:
day = datetime.datetime.today().strftime("%d.%m.%Y") # Получает текущую дату, месяц и год
with open("nama.csv", newline='') as csvfile:
reader = csv.DictReader(csvfile, delimiter=";")
for row in reader:
if row['data'] == day: # Если в списке есть такая дата
time_namaz1 = row['time1_off']
time_namaz2 = row['time2_off']
time_namaz3 = row['time3_off']
time_namaz4 = row['time4_off']
time_radio1 = row['time1_on']
time_radio2 = row['time2_on']
time_radio3 = row['time3_on']
time_radio4 = row['time4_on']
TIME_on = row['time_on']
TIME_off = row['time_off']
while True:
TIME = datetime.datetime.today().strftime("%H:%M:%S")
if TIME == TIME_on: # on
if not "msedge.exe" in (p.name() for p in psutil.process_iter()):
webbrowser.open('https://www.govoritmaykop.ru', new=0)
time.sleep(1)
if TIME == time_namaz1: # off
os.system('taskkill /IM msedge.exe /F')
time.sleep(1)
if TIME == time_radio1: # on
if not "msedge.exe" in (p.name() for p in psutil.process_iter()):
webbrowser.open('https://www.govoritmaykop.ru', new=0)
time.sleep(1)
if TIME == time_namaz2: # off
os.system('taskkill /IM msedge.exe /F')
time.sleep(1)
if TIME == time_radio2: # on
if not "msedge.exe" in (p.name() for p in psutil.process_iter()):
webbrowser.open('https://www.govoritmaykop.ru', new=0)
time.sleep(1)
if TIME == time_namaz3: # off
os.system('taskkill /IM msedge.exe /F')
time.sleep(1)
if TIME == time_radio3: # on
if not "msedge.exe" in (p.name() for p in psutil.process_iter()):
webbrowser.open('https://www.govoritmaykop.ru', new=0)
time.sleep(1)
if TIME == time_namaz4: # off
os.system('taskkill /IM msedge.exe /F')
time.sleep(1)
if TIME == time_radio4: # on
if not "msedge.exe" in (p.name() for p in psutil.process_iter()):
webbrowser.open('https://www.govoritmaykop.ru', new=0)
time.sleep(1)
if TIME > TIME_on and TIME < time_namaz1:
if not "msedge.exe" in (p.name() for p in psutil.process_iter()):
webbrowser.open('https://www.govoritmaykop.ru', new=0)
if TIME == TIME_off or TIME > TIME_off:
if "msedge.exe" in (p.name() for p in psutil.process_iter()):
os.system('taskkill /IM msedge.exe /F')
if TIME < TIME_on:
if "msedge.exe" in (p.name() for p in psutil.process_iter()):
os.system('taskkill /IM msedge.exe /F')
else:
break # Выход из цикла для обновления даты
该错误是由 msedge.exe 程序的 PID 引起的:
我发现了一个有类似错误的线程,这很有帮助。将第 63 行和第 66 行替换为打包函数
PS 对于初学者来说,要找到自完成错误,您可以简单地通过 CMD 或任何其他解释器运行脚本(只有 pycharm 没有给出错误,一切都像时钟一样工作)。