Python使用re.search查找文件时打开文件时返回没有该文件或目录
我想在很多文件夹里打开一个特定的文件,这个文件的名字是以 '.alleles.txt' 结尾的。我搜索这个文件的时候找到了它,但当我尝试打开它时却出现了:
IOError: [Errno 2] 没有这样的文件或目录: 'abca3.alleles.txt'
这让我很困惑。
for eachfile in filelisting:
if re.search('\.alleles\.txt$', eachfile):
allelesfile = open(eachfile, 'r')
print '2'
目录是通过以下方式指定的:
folder = 'E:\\All Data'
folderlisting = os.listdir(folder)
for eachfolder in folderlisting:
print eachfolder
if os.path.isdir(folder + '\\' + eachfolder):
filelisting = os.listdir(folder + '\\' + eachfolder)
4 个回答
1
你是怎么得到 filelisting
的?如果你用了 filelisting = os.walk(directoryname)
这行代码,那它会返回一个特别的元组。你看过这个元组吗?
另外,filelisting
里面有文件的完整路径吗?如果这些文件在一个和脚本不在同一个目录的地方,比如说它们存储在 directoryname
这个变量里,你需要这样打开它们:
allelesfile = open(directoryname + "\\" + eachfile, 'r')
在你提供更多信息之前,我们无法给出更多的帮助(比如实际的 filelisting
值等)。
1
这个错误出现是因为程序试图从你运行Python程序的文件夹中打开文件,而不是从文件实际所在的文件夹中打开。
你需要给open
函数提供文件的完整路径,也就是包括文件夹名称的路径。
2
你应该使用 glob
。试试这个
import glob
files = glob.glob('E:\\All Data\\*\\*.alleles.txt')