如何只计算目录中的文件?这将目录本身计算为一个文件:
len(glob.glob('*'))
如何只计算目录中的文件?这将目录本身计算为一个文件:
len(glob.glob('*'))
当前回答
如果你想计算目录中的所有文件——包括子目录中的文件,最python的方法是:
import os
file_count = sum(len(files) for _, _, files in os.walk(r'C:\Dropbox'))
print(file_count)
我们使用sum,它比显式地添加文件计数(等待时间)更快。
其他回答
import os
def count_files(in_directory):
joiner= (in_directory + os.path.sep).__add__
return sum(
os.path.isfile(filename)
for filename
in map(joiner, os.listdir(in_directory))
)
>>> count_files("/usr/lib")
1797
>>> len(os.listdir("/usr/lib"))
2049
下面是一个简单的单行命令,我觉得很有用:
print int(os.popen("ls | wc -l").read())
如果你想计算目录中的所有文件——包括子目录中的文件,最python的方法是:
import os
file_count = sum(len(files) for _, _, files in os.walk(r'C:\Dropbox'))
print(file_count)
我们使用sum,它比显式地添加文件计数(等待时间)更快。
我找到了另一个可能是正确的公认答案。
for root, dirs, files in os.walk(input_path):
for name in files:
if os.path.splitext(name)[1] == '.TXT' or os.path.splitext(name)[1] == '.txt':
datafiles.append(os.path.join(root,name))
print len(files)
卢克的代码重新格式化。
import os
print len(os.walk('/usr/lib').next()[2])