Python中计算文件夹中文件数的最优雅方法是什么



我对Python很陌生,目前正在学习。

正如标题所说:对文件夹中的文件进行计数的最优雅、简洁、高效和python式的方法是什么?

让我们假设一个文件夹只包含文件而不包含子文件夹。

通过(天真地(应用我所学到的,我想出了这个:

from os import walk
num_files = -1
for (dir_path, dir_names, file_names) in walk(image_file_path):
for fn in file_names:
num_files += 1

它看起来并没有那么优雅,我意识到fn在整个迭代过程中都没有使用。此外,num_files=-1是最不优雅的。

那么,写这篇文章的更好方法是什么呢?

提前谢谢。

您可以尝试os.listdir

import os
len(os.listdir(image_file_path))

就我个人而言,我喜欢glob:

from glob import glob
num_files = len(glob(dir_name.rstrip('/') + '/*'))

您可以通过将所有文件和文件夹放在指定的路径(如os.listdir("./")(中来完成此操作。而不是像这个[i for i in os.listdir("./") if os.path.isfile(i)]那样用列表理解来过滤所有文件。对于结束计数,则为列表中的对象。如果我们把它们放在一起,它看起来像这个len([i for i in os.listdir("./") if os.path.isfile(i)])

我认为以下是最Python的现代答案:

from pathlib import Path
path = Path(image_file_path)
num_files = sum(1 for x in path.iterdir() if x.is_file())

尝试列表理解

total_files = sum(len(dirData[2]) for dirData in walk(image_file_path))

相关内容

最新更新