gpt4 book ai didi

python - Os.walk - 计算父目录的同一子目录中的文件数

转载 作者:行者123 更新时间:2023-12-01 08:19:21 25 4
gpt4 key购买 nike

我正在尝试计算大量父目录中特定文件夹中的文件数量。每个项目都包含相同的文件夹结构:

C:/Projects
2019
Project A
Communication
Images
Project B
Communication
Images
...
2018
...

以下是我的尝试

base_dir = 'C:/Projects/'
years = ['2019', '2018', '2017']
image_folder = '/Communication/Images'

project_list = []
for project in project_list:
for year in years:
target_folder = base_dir + year + project + image_folder
for root, dirs, files in os.walk(folder):
total += len(files)

# Print to CSV etc

首先,我需要获取图像文件夹的所有路径的列表。我正在努力理解(甚至尝试工作)是 os.walk 接受 root、dir、文件。 os.walk 可以完全满足我的需要,而不会进入可能的 3 个 for 循环吗?我打算计算很多文件,所以我想确保我不会像我那样构建它,从而影响性能

最佳答案

Python3 的 pathlib 对于此类事情来说非常灵活:

from pathlib import Path 

base_dir = Path('C:/Projects/')

# rglob = recursive glob; finds all files in all subdirectories
files_generator = base_dir.rglob("*")

total_n_files = len(list(files_generator))

您甚至可以通过 target_folder (使用问题中的文件结构)获取包含文件数量的字典:

from collections import Counter

base_dir = Path('C:/Projects/')
file_counts = Counter(p.parent for p in base_dir.rglob("*"))

(第二个代码片段改编自几个示例:https://realpython.com/python-pathlib/)

关于python - Os.walk - 计算父目录的同一子目录中的文件数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54773330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com