从目录Python列表中读取多个文件

时间:2020-07-22 04:55:00

标签: python-3.x

我有一个具有相同结构/相同文件名的目录列表。在每个文件下都有不同类型的文件,每个目录具有相同的文件名(文件数可能有所不同),但内容不同。

parentDIR-
     - subDir1
       - file1.ext1 (contains taskID)
       - file2.ext2 (contains userID)
       - file3.ext3
     - subDir2
       - file1.ext1 (contains taskID)
       - file2.ext2 (contains userID)
       - file3.ext3
     - subDir100

如何搜索所有目录并从file1 / file2中成对提取taskID和userID?我需要正确打开/关闭同一目录中的file1 / file2并读取内容,因为它们具有一些共享的信息。

我正在考虑使用

glob,xxxx为ExitStack(),但不确定如何将它们连接在一起


2 个答案:

答案 0 :(得分:1)

您可以在glob中使用正则表达式

In [1]: import glob
   ...: for x in glob.glob('parent/**/*.ext[1|2]', recursive=True):
   ...:     # Open, read content close here
   ...:     print(x)
   ...:
parent/subdir2/file1.ext1
parent/subdir2/file2.ext2
parent/subdir1/file1.ext1
parent/subdir1/file2.ext2

答案 1 :(得分:0)

我使用了稍微不同的方法

types={"*.ext1", "*.ext2"}

for type in types:
    path(dir_name).rglob(type):
        do_something