我是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>
注意:为什么这个异常只发生在循环的第二次迭代?找到并打开文件夹中的第一个文件,没有任何问题......
答案 0 :(得分:2)
这是因为open
收到了本地名称(从os.listdir
返回)。它不知道你的意思是它应该在../myFolder
中查看。因此它接收相对路径并将其应用于当前目录。要修复它,请尝试:
data = loadFile(os.path.join(inputFolder, aFile))