Python 读取未知目录中的文件
我需要读取和编辑多个文件,问题是我大致知道这些文件的位置,但不是全部 因此,所有文件在不同的目录中都称为QqTest.py。 我知道父目录被称为:Python 读取未知目录中的文件,python,linux,wildcard,directory-structure,Python,Linux,Wildcard,Directory Structure,我需要读取和编辑多个文件,问题是我大致知道这些文件的位置,但不是全部 因此,所有文件在不同的目录中都称为QqTest.py。 我知道父目录被称为: mdcArray = ['MDC0021','MDC0022','MDC0036','MDC0055','MDC0057' 'MDC0059','MDC0061','MDC0062','MDC0063','MDC0065' 'MDC0066','MDC0086','MDC0095','MDC0098',
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[number]/unknownDir/QqTest.txt读取QqTest.txt
因此,我在python中通配符读取文件的方式与在bash中类似
i、 e
您可以使用名为
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
您可以使用名为
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
您可以使用os.walk。这不完全是你想要的,但你会做好的
rootDir = '.'
for dirName, subdirList, fileList in os.walk(rootDir):
print('Found directory: %s' % dirName)
您可以使用os.walk。这不完全是你想要的,但你会做好的
rootDir = '.'
for dirName, subdirList, fileList in os.walk(rootDir):
print('Found directory: %s' % dirName)
您可以按如下方式搜索根文件夹:
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
该函数可用于遍历文件夹结构
要在路径中搜索所有文件夹中的MDC
,可以使用以下方法:
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)
您可以按如下方式搜索根文件夹:
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
该函数可用于遍历文件夹结构
要在路径中搜索所有文件夹中的MDC
,可以使用以下方法:
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)