您好我在子目录中查找和打开文件时遇到问题。
我有几个不同的文件,例如:
mouse_1_animal.txt
mouse_2_animal.txt
mouse_3_animal.txt
所以我想在工作目录的子目录中找到所有这些文件并打开它们并使用那些行做一些事情。这是我的尝试:
i=1
for path, subdirs, files in os.walk(root) :
for file in files :
if file == "mouse_{0}_animal.txt".format(i) :
#do something
i = i + 1
但显然它并没有找到所有文件,所以我想知道它是否是我用来查找错误文件的方式。
答案 0 :(得分:7)
pythonic方式:
import glob
for f in glob.glob('./subDir/mouse_*_animal.txt'):
# do_something
答案 1 :(得分:0)
import fnmatch
import os
src = 'sourceDirPath'
for root, dirnames, filenames in os.walk(src):
for filename in fnmatch.filter(filenames, 'mouse*.txt'):
#do something
i = i + 1
对于较旧的python版本,您可能需要尝试使用glob而不是fnmatch
答案 2 :(得分:0)
好吧我已经解决了我的问题
file_list = []
for name in glob.glob('./subDir/mouse_*_animal.txt'):
file_list.append(name)
for i in range(len(file_list)+1):
if './subDir/mouse_*_animal.txt'.format(i) in file_list:
#do something