我正在编写一个脚本,其中包括打印10秒倒计时而不换行,并且我希望它与Python2和Python3兼容。捕捉语法错误
这是我已经试过:
for sec in range(10, 0, -1):
try:
print(" %d \r" % sec, end="")
except SyntaxError:
subprocess.call("printf \" %d \\r\"" % sec, shell=True)
time.sleep(1)
而且我得到这个错误:
print(" %d \r" % sec, end="")
^
SyntaxError: invalid syntax
在我看来,那SyntaxError
应该被逮住。
我试过研究这个主题,并阅读documentation on SyntaxError
,但找不到任何暗示为什么会发生这种情况。
语法错误并不是你可以捕捉到的异常,这意味着整个程序是不合格的。现在,我猜你正在运行Python 2.x,其中'print'不是支持关键字参数的函数。尝试升级或从__future__导入printf_function'。 – 2014-08-29 05:25:02