如何打开与子目录中的模式匹配的文件

时间:2015-04-09 09:53:18

标签: python

您好我在子目录中查找和打开文件时遇到问题。 我有几个不同的文件,例如:
    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

但显然它并没有找到所有文件,所以我想知道它是否是我用来查找错误文件的方式。

3 个答案:

答案 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