如何只计算目录中的文件?这将目录本身计算为一个文件:
len(glob.glob('*'))
如何只计算目录中的文件?这将目录本身计算为一个文件:
len(glob.glob('*'))
当前回答
如果您将使用操作系统的标准shell,则可以比使用纯python方式更快地获得结果。
Windows示例:
import os
import subprocess
def get_num_files(path):
cmd = 'DIR \"%s\" /A-D /B /S | FIND /C /V ""' % path
return int(subprocess.check_output(cmd, shell=True))
其他回答
转换为列表后,您可以Len
len(list(glob.glob('*')))
这就是fnmatch非常方便的地方:
import fnmatch
print len(fnmatch.filter(os.listdir(dirpath), '*.txt'))
详情:http://docs.python.org/2/library/fnmatch.html
import os
_, _, files = next(os.walk("/usr/lib"))
file_count = len(files)
虽然我同意@DanielStutzbach提供的答案:os.listdir()将比使用glob.glob更有效。
然而,额外的精度,如果你想计算文件夹中特定文件的数量,你想使用len(glob.glob())。例如,如果你要计算你想要使用的文件夹中的所有pdf文件:
pdfCounter = len(glob.glob1(myPath,"*.pdf"))
import os
total_con=os.listdir('<directory path>')
files=[]
for f_n in total_con:
if os.path.isfile(f_n):
files.append(f_n)
print len(files)