如何只计算目录中的文件?这将目录本身计算为一个文件:
len(glob.glob('*'))
如何只计算目录中的文件?这将目录本身计算为一个文件:
len(glob.glob('*'))
当前回答
一行和递归:
def count_files(path):
return sum([len(files) for _, _, files in os.walk(path)])
count_files('path/to/dir')
其他回答
def directory(path,extension):
list_dir = []
list_dir = os.listdir(path)
count = 0
for file in list_dir:
if file.endswith(extension): # eg: '.txt'
count += 1
return count
下面是一个简单的单行命令,我觉得很有用:
print int(os.popen("ls | wc -l").read())
很简单:
print(len([iq for iq in os.scandir('PATH')]))
它只是简单地计算目录中的文件数量,我使用了列表理解技术来遍历特定目录,返回所有文件。"len(返回列表)"返回文件数。
我找到了另一个可能是正确的公认答案。
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)
def count_em(valid_path):
x = 0
for root, dirs, files in os.walk(valid_path):
for f in files:
x = x+1
print "There are", x, "files in this directory."
return x
摘自本文