我需要阅读和编辑多个文件,问题是我大致知道这些文件的位置但不完全。
所以所有文件在各种不同的目录中都被称为QqTest.py。 我知道父目录被调用:
mdcArray = ['MDC0021','MDC0022','MDC0036','MDC0055','MDC0057'
'MDC0059','MDC0061','MDC0062','MDC0063','MDC0065'
'MDC0066','MDC0086','MDC0095','MDC0098','MDC0106'
'MDC0110','MDC0113','MDC0114','MDC0115','MDC0121'
'MDC0126','MDC0128','MDC0135','MDC0141','MDC0143'
'MDC0153','MDC0155','MDC0158']
但之后还有另一个包含QqTest.txt的未知子目录
所以我需要从/ MDC读取QqTest.txt [number] /unknownDir/QqTest.txt
所以我如何在python中读取文件,类似于我在bash中的方式 即
/MDC0022/*/QqTest.txt
答案 0 :(得分:2)
您可以使用名为glob
的Python模块执行此操作。它支持Unix样式的路径名模式扩展。
import glob
glob.glob("/MDC0022/*/QqTest.txt")
如果您想对列表中的所有项目执行此操作,可以尝试此操作。
for item in mdcArray:
required_files = glob.glob("{0}/*/QqTest.txt".format(item))
# process files here
答案 1 :(得分:1)
您可以按如下方式搜索根文件夹:
import os
mdcArray = ['MDC0021','MDC0022','MDC0036','MDC0055','MDC0057'
'MDC0059','MDC0061','MDC0062','MDC0063','MDC0065'
'MDC0066','MDC0086','MDC0095','MDC0098','MDC0106'
'MDC0110','MDC0113','MDC0114','MDC0115','MDC0121'
'MDC0126','MDC0128','MDC0135','MDC0141','MDC0143'
'MDC0153','MDC0155','MDC0158']
for root in mdcArray:
for dirpath, dirnames, filenames in os.walk(root):
for filename in filenames:
if filename == 'QqTest.txt':
file = os.path.join(dirpath, filename)
print "Found - {}".format(file)
这将显示如下内容:
Found - MDC0022\test\QqTest.txt
os.walk
函数可用于遍历文件夹结构。
要在路径中搜索MDC<number>
的所有文件夹,您可以使用以下方法:
import os
import re
for dirpath, dirnames, filenames in os.walk('.'):
if re.search(r'MDC\d+', dirpath):
for filename in filenames:
if filename == 'QqTest.txt':
file = os.path.join(dirpath, filename)
print "Found - {}".format(file)
答案 2 :(得分:0)
您可以使用os.walk。不完全是你想要的,但会完成这项工作。
rootDir = '.'
for dirName, subdirList, fileList in os.walk(rootDir):
print('Found directory: %s' % dirName)