使用Try& amp;文件打开功能Python 2.7.1除外

时间:2011-12-05 01:14:50

标签: python file function try-catch except

def FileCheck(fn):       
       try:
           fn=open("TestFile.txt","U") 
       except IOError: 
           print "Error: File does not appear to exist."
       return 0 

我正在尝试创建一个函数来检查文件是否存在,如果不存在,那么它应该打印错误消息并返回0。为什么这不起作用???

4 个答案:

答案 0 :(得分:16)

如果要从except块中返回,则需要缩进返回0。 而且,你的论点并没有做很多事情。我假设您希望此函数能够测试任何文件,而不是将其分配给文件句柄?如果没有,你就不需要任何论据。

def FileCheck(fn):
    try:
      open(fn, "r")
      return 1
    except IOError:
      print "Error: File does not appear to exist."
      return 0

result = FileCheck("testfile")
print result

答案 1 :(得分:3)

这可能是因为您想要以读取模式打开文件。 将“U”替换为“r”。

当然,您也可以使用os.path.isfile('filepath')

答案 2 :(得分:2)

我认为os.path.isfile()更好,如果你只是想"检查"如果文件存在,因为您不需要实际打开该文件。无论如何,在打开之后,关闭文件被认为是最佳实践,上面的示例不包括此内容。

答案 3 :(得分:-1)

如果您只想检查文件是否存在,则python os库提供了诸如os.path.isfile('TestFile.txt')之类的解决方案。 OregonTrails的答案不起作用,因为您仍然需要最后使用finally块关闭文件,但要这样做,必须将文件指针存储在try和except块之外的变量中,这会破坏解决方案的全部目的。