【问题标题】:Read multiple files from a list of directory Python从 Python 目录列表中读取多个文件
【发布时间】:2020-07-22 04:55:00
【问题描述】:

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

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(),但不知道如何将它们连接在一起


【问题讨论】:

  • 到目前为止你自己尝试过什么?

标签: python-3.x


【解决方案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

【讨论】:

  • 谢谢,就我而言,ext1、ext2 实际上是完全不同的模式,例如 abc.xy1、cde.dat.zst 等
  • @tudou 您可以根据需要自定义正则表达式
【解决方案2】:

我使用了稍微不同的方法

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 2020-12-02
    • 2020-10-05
    • 1970-01-01
    • 2020-02-25
    • 2014-07-23
    • 2013-09-04
    相关资源
    最近更新 更多