Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 读取未知目录中的文件_Python_Linux_Wildcard_Directory Structure - Fatal编程技术网

Python 读取未知目录中的文件

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',

我需要读取和编辑多个文件,问题是我大致知道这些文件的位置,但不是全部

因此,所有文件在不同的目录中都称为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[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)