运算符在try-except中

时间:2015-04-11 13:42:55

标签: python

我有以下代码:

with open("a.txt") as f:
    data = f.read()
    # operation on data

如果我的数据操作出现任何错误,这将关闭文件a.txt。我想知道,如果文件a.txt不存在会怎样。 我的代码应该是:

try:
    with open("a.txt") as f:
        data = f.read()
        # operation on data
except IOError:
    print "No such File"

2 个答案:

答案 0 :(得分:0)

如果文件不存在,除非您使用try/except,将引发错误,如果文件不存在,将不会打开任何内容,因此无法关闭任何内容。如果你想在文件不存在时捕获,你需要使用try。

如果要根据错误类型输出消息,可以检查错误:

try:
    with open("a.txt") as f:
       data = f.read()
except IOError as e:
    if e.errno == 2:
        print("No such File")

如果您想要创建该文件(如果该文件不存在或从中读取),您可以使用a+

with open("a.txt","a+") as f:

答案 1 :(得分:0)

您可以使用os.path来验证文件路径是否存在,例如:

if os.path.exists('data.txt'):
    with open('data.txt', 'r') as data:
        # do stuff with file here