我有一个备份脚本,它每天只运行并将文件备份到目录(如果它们存在于源目录中但不存在于目标目录中。
如果文件未经正确许可,有时(很少)脚本会失效。
我使用try/except
阻止了这一点。
但我现在要做的是显示except
块中的错误消息,然后说
>>> Press Enter to re-run backup
然后让脚本重新运行复制过程,这是一个已定义的函数。
总结一下:
我正在运行Windows,如果这有所不同(当我在google搜索这个问题时,很多结果都与Windows上的python有关)
答案 0 :(得分:1)
如果使用Python 3)等待raw_input()
和条件变量控制循环复制过程直到成功,您可以使用input()
(或简称为Enter
。
from sys import stderr
def run_backup():
print "running backup"
raise # this simulates an error
backup_completed = False
while not backup_completed:
try:
run_backup()
backup_completed = True
except:
print >> stderr, "Error message..."
raw_input(">>> Press Enter to re-run backup")
答案 1 :(得分:0)
对我来说似乎很简单。您只需使用raw_input
使脚本等待Enter键按下:
while True:
try:
# run the script
except SomeException as e:
# print the error message and recovery instructions
raw_input('Press Enter to re-run backup.')