我编写了一个小模块,首先找到目录中的所有文件,然后合并它们。 但是,我遇到了从目录中打开这些文件的问题。 我确保我的文件和目录名称是正确的,文件实际上在目录中。
以下是代码..
seqdir = "results"
outfile = "test.txt"
for filename in os.listdir(seqdir):
in_file = open(filename,'r')
以下是错误..
in_file = open(filename,'r')
IOError: [Errno 2] No such file or directory: 'hen1-1-rep1.txt'
答案 0 :(得分:4)
listdir只返回文件名:https://docs.python.org/2/library/os.html#os.listdir您需要完整路径才能打开文件。在打开文件之前,请检查以确保它是文件。示例代码如下。
for filename in os.listdir(seqdir):
fullPath = os.path.join(seqdir, filename)
if os.path.isfile(fullPath):
in_file = open(fullPath,'r')
#do you other stuff
但是对于文件,最好使用with关键字打开。即使有异常,它也会为您处理结算。有关详细信息和示例,请参阅https://docs.python.org/2/tutorial/inputoutput.html#methods-of-file-objects