Il s'agit d'un script simple utilisé pour calculer les scores Z de certains tests neuropsychologiques.Le script Python continue à fonctionner en arrière-plan
Mais récemment, le code semble fonctionner en arrière-plan, même après avoir quitté le programme. Ce problème n'existait pas auparavant, j'utilise le morceau de démarrage suivant pour m'assurer que le programme s'exécute avec l'élévation, et est la taille correcte pour l'affichage.
Le programme peut être arrêté à l'aide d'une commande "exit" qui déclenche SystemExit ou simplement en appuyant sur le bouton X dans la barre supérieure. Le programme continue à fonctionner en arrière-plan malgré tout.
Où est-ce que je me suis trompé?
def progStructure():
first_run = True
if first_run:
import os
os.system("mode con: cols=160 lines=50")
print("""
================================================
PROGRAM GREETING
================================================
""")
mainStartup()
first_run = False
while settings("auto_run"):
mainStartup()
#this function contains the main program, but irrelevant to the question
print("Auto shutdown enabled, program is shutting down.")
wait(2)
exit()
#informs the user data has been saved then restarts
import ctypes, sys
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
if is_admin():
progStructure()
else:
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, "", None, 0)
progStructure()
fonction d'écriture Excel Mon:
def excelWriter(excel_path, data_num, printable_list):
from time import strftime
date = strftime("%Y-%m-%d")
time = strftime("%H:%M:%S")
if settings("excel_output_subjectNames"):
patient_name_local = patient_name
else:
patient_name_local = "N/A"
demographic_data = [patient_ID, patient_name_local, patient_admin, date, time, patient_age, patient_sex, patient_edu]
from openpyxl import Workbook
from openpyxl import load_workbook
wb = Workbook(write_only=False)
try:
test_name_list = [
"(1)MMT", "(2)MOCA", "(3)3MS", "(4)GISD", "(5)ECR",
"(6)Sözel Bellek Süreçleri", "(7)Rey Karmaşık Figür", "(8)İz Sürme", "(9)Stroop",
"(10)Wisconsin", "(11)Görsel Sözel Test", "(12)Renkli İz Sürme",
"(13)Wechsler", "(14)Wechsler-Sayı Dizisi", "(15)Sözel Akıcılık",
"(16)Semantik Akıcılık", "(17)Saat Çizme", "(18)SDOT", "(19)Ayları İleri-Geri Sayma"
]
while True:
try:
data_workbook = load_workbook(filename = excel_path + settings("excel_name"), read_only=False)
active_sheet = data_workbook.get_sheet_by_name(test_name_list[data_num-1])
active_sheet.append(demographic_data + printable_list)
data_workbook.save(filename = excel_path + settings("excel_name"))
break
except:
for i in range(len(test_name_list)):
wb.create_sheet(title = test_name_list[i])
wb.save(filename = excel_path + settings("excel_name"))
data_workbook = load_workbook(filename = excel_path + settings("excel_name"), read_only=False)
active_sheet = data_workbook.get_sheet_by_name("Sheet")
data_workbook.remove_sheet(active_sheet)
data_workbook.save(filename = excel_path + settings("excel_name"))
continue
except:
raise
Obtenez-vous le message d'arrêt? Et quels sont exactement les symptômes du «programme en cours d'exécution»? Est-ce juste que vous voyez l'exécutable Python toujours dans la liste de processus? –
Vous n'avez pas un exemple complet. Ajoutez également des instructions print pour voir où il se bloque. –
Je peux voir l'exécutable python encore dans la liste des processus, oui. Soit mon exe s'il est gelé, soit le python lui-même, si c'est juste le script. J'ai réalisé ceci après que j'ai essayé de supprimer le programme. –