Python文件不存在异常

时间:2016-03-24 12:38:35

标签: python file exception-handling

我正在尝试打开一个文件并从中读取,如果文件不存在,我会捕获异常并向stderr抛出错误。我的代码:

for x in l:
    try:        
        f = open(x,'r')
    except IOError:
        print >> sys.stderr, "No such file" , x

但没有任何内容正在打印到stderr,如果文件名不存在或者其他地方出现问题,是否会打开创建新文件?

3 个答案:

答案 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