我正在尝试打开一个文件并从中读取,如果文件不存在,我会捕获异常并向stderr抛出错误。我的代码:
for x in l:
try:
f = open(x,'r')
except IOError:
print >> sys.stderr, "No such file" , x
但没有任何内容正在打印到stderr,如果文件名不存在或者其他地方出现问题,是否会打开创建新文件?
答案 0 :(得分:3)
试试这个:
from __future__ import print_statement
import sys
if os.path.exists(x):
with open(x, 'r') as f:
# Do Stuff with file
else:
print("No such file '{}'".format(x), file=sys.stderr)
这里的目标是尽可能清楚地了解正在发生的事情。我们首先通过调用os.path.exists(x)
来检查文件是否存在。这返回True或False,允许我们在if
语句中简单地使用它。
从那里你可以打开文件进行阅读,或者根据需要处理退出。使用Python3样式的print函数允许您显式声明输出的位置,在本例中为stderr。
答案 1 :(得分:1)
你有os.path.exists函数:
import os.path
os.path.exists(file_path)
返回 bool
答案 2 :(得分:0)
它对我有用。为什么不能使用os.path.exists()
for x in l:
if not os.path.exists(x):
print >> sys.stderr , "No such file", x