在python中没有这样的文件或目录

时间:2012-11-10 21:48:19

标签: python ioexception filenotfoundexception

我是python的新手,下面这段代码让我发疯。它列出了目录中的文件,并为每个文件做了一些事情。我得到IOError: [Errno2] No such file or directory: my_file_that_is_actually_there!

def loadFile(aFile):
  f_gz = gzip.open(aFile, 'rb')
  data = f_gz.read()
  #do some stuff...
  f_gz.close()
  return data

def main():
  inputFolder = '../myFolder/'
  for aFile in os.listdir(inputFolder):
    data = loadFile(aFile)
    #do some more stuff

该文件存在且未损坏。我不明白python在检查myFolder的内容时是否有可能首先找到该文件,然后它找不到它......这种情况发生在我的for循环的第二次迭代中,只发生在任何文件中。 / p>

注意:为什么这个异常只发生在循环的第二次迭代?找到并打开文件夹中的第一个文件,没有任何问题......

1 个答案:

答案 0 :(得分:2)

这是因为open收到了本地名称(从os.listdir返回)。它不知道你的意思是它应该在../myFolder中查看。因此它接收相对路径并将其应用于当前目录。要修复它,请尝试:

data = loadFile(os.path.join(inputFolder, aFile))