我在Python中有以下脚本:
import sys
for filename in sys.argv:
with open(filename, mode='r') as f:
print("Foobar")
如果我使用不存在的文件名作为参数启动脚本,我会得到一个异常,如预期的那样。但是,print()
仍在执行,即使我预计它不是。
Foobar
Traceback (most recent call last):
File "home/bin/ksp-increment-build", line 16, in <module>
with open(filename, mode='r') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'asdads'
为什么会这样?
答案 0 :(得分:6)
sys.argv
的第一个元素是自己运行的脚本的路径,因此可以正确打开它。
第二个元素是不存在的文件名,它在打印函数之前抛出错误。