python - 如何将每个子目录中的文件名收集在单独的列表中

标签 python

假设/test 有子目录/test1、/test2、/test3 等,每个子目录内都有多个 PDF 文件。

我想使用 Python 将每个子目录的 PDF 文件名保存在单独的列表中

我该怎么做?

我尝试下面的代码:

import os
PDF_list = []
for r, d, f in os.walk('.'):
    for outPDF in f:
      if outPDF.endswith('.pdf'):
         print(outPDF)
         PDF_list.append(outPDF)

但使用此代码,我可以保存在此列表中找到的所有 PDF 文件。 但对我来说,我想将每个子目录中的 PDF 文件保存在单独的列表中

请问我该怎么做?

最佳答案

您的代码只需要进行一点小小的更改。为每个子目录创建一个列表,然后,如果它不为空,则将其附加到主列表中:

import os

pdf_lists = []
for path, directories, files in os.walk('.'):
    pdfs_in_directory = []
    for file in files:
        if file.endswith('.pdf'):
            pdfs_in_directory.append(file)
    if pdfs_in_directory:
        pdf_lists.append(pdfs_in_directory)

对于以下目录结构:

- /test
   - /test1:
      - file1.pdf
      - file2.pdf
   - /test2:
   - /test3:
      - file3.pdf
      - foo.txt
   - /test4
      - bar.txt

它会给你:

[['file1.pdf', 'file2.pdf'], ['file3.pdf']]

关于python - 如何将每个子目录中的文件名收集在单独的列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59071950/

相关文章:

python - 如何将 Pandas 数据框读入卡普兰迈尔曲线?

python - 如何使用Pythonwin32.com加快Excel文件写入速度

python - 为什么Python中只将部分内容写入文件?

Python - 为什么 uuid 函数不删除我发送的电子邮件?

python - 如何将颜色条添加到极坐标图(玫瑰图)?

python - 如何在独立的环境中嵌入 Bokeh 服务器

python - 在固定时间间隔后查找最后一个可用时间戳 - pandas 或 numpy

python - v4l2 文档的示例代码原样(打开为 'rw' )?

python - 将符号方程解析为 Sympy 函数

python - 在python中解析结构化文本文件