我需要两次启动可执行文件才能多次处理python中的不同数据。问题在于,exe文件的执行非常耗时(〜20分钟)。可执行文件从input_path中获取数据,进行一些处理,然后将数据保存到output_path中。我尝试解决此问题的方法是:
for folder in input:
process = Popen(exe_path +
" --input " + os.path.join(input_path, folder) +
" --output " + os.path.join(output_path, folder) +
stdout=PIPE)
process.wait()
if process.returncode != 0:
output, _ = process.communicate()
errors = [line for line in output.decode().split('\n') if "Error" in line]
failed_patients[os.path.join(input_path, folder)] = errors
process.kill()
continue
问题在于此解决方案非常不稳定。通常在处理第一个文件夹时卡住。一旦它设法处理了9个文件夹中的2个,是否可以用一种优雅的方式来处理此问题,以便用户知道发生了什么?当前,当程序失败时,它将停止,而不会显示任何信息。