我正在編寫一個腳本,其中包括打印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