使用击键重复一个功能

时间:2014-09-09 08:30:16

标签: python python-2.7 keystroke

我有一个备份脚本,它每天只运行并将文件备份到目录(如果它们存在于源目录中但不存在于目标目录中。

如果文件未经正确许可,有时(很少)脚本会失效。

我使用try/except阻止了这一点。

但我现在要做的是显示except块中的错误消息,然后说

>>> Press Enter to re-run backup

然后让脚本重新运行复制过程,这是一个已定义的函数。

总结一下:

  1. 脚本运行
  2. 脚本抛出错误
  3. 用户按照错误消息中的说明进行操作
  4. 用户按下"输入"重新运行复制功能的关键
  5. 我正在运行Windows,如果这有所不同(当我在google搜索这个问题时,很多结果都与Windows上的python有关)

2 个答案:

答案 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.')