如何只计算目录中的文件?这将目录本身计算为一个文件:
len(glob.glob('*'))
如何只计算目录中的文件?这将目录本身计算为一个文件:
len(glob.glob('*'))
当前回答
这就是fnmatch非常方便的地方:
import fnmatch
print len(fnmatch.filter(os.listdir(dirpath), '*.txt'))
详情:http://docs.python.org/2/library/fnmatch.html
其他回答
我想扩展@Mr_and_Mrs_D的回复:
import os
folder = 'C:/Dropbox'
file_count = sum(len(files) for _, _, files in os.walk(folder))
print(file_count)
这将计算文件夹及其子文件夹中的所有文件。然而,如果你想做一些过滤——比如只计算以.svg结尾的文件,你可以这样做:
import os
file_count = sum(len([f for f in files if f.endswith('.svg')]) for _, _, files in os.walk(folder))
print(file_count)
你基本上可以替换:
len(档案)
:
Len ([f for f in files if f.endswith('.svg')])
卢克的代码重新格式化。
import os
print len(os.walk('/usr/lib').next()[2])
虽然我同意@DanielStutzbach提供的答案:os.listdir()将比使用glob.glob更有效。
然而,额外的精度,如果你想计算文件夹中特定文件的数量,你想使用len(glob.glob())。例如,如果你要计算你想要使用的文件夹中的所有pdf文件:
pdfCounter = len(glob.glob1(myPath,"*.pdf"))
import os
_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
简短而简单
import os
directory_path = '/home/xyz/'
No_of_files = len(os.listdir(directory_path))