假设/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/