Python 如何计算目录和子目录中的所有文件?
在这段代码中,我试图找到所有文件的长度。当我打印Python 如何计算目录和子目录中的所有文件?,python,python-3.x,Python,Python 3.x,在这段代码中,我试图找到所有文件的长度。当我打印f时,它会给出目录和子目录中的所有文件名,但当我打印长度时,它会给出这个结果 4 7 7 3 我也在循环外打印了长度,但它没有计算目录中的文件 代码 import os path = '/home/runner/TestP1' for root,d_names,f_names in os.walk(path): for f in f_names: length = len(f) print(length) 使用f_name
f
时,它会给出目录和子目录中的所有文件名,但当我打印长度时,它会给出这个结果
4
7
7
3
我也在循环外打印了长度
,但它没有计算目录中的文件
代码
import os
path = '/home/runner/TestP1'
for root,d_names,f_names in os.walk(path):
for f in f_names:
length = len(f)
print(length)
使用f_names中的f的:
您正在迭代当前根目录中的文件名列表,因此len(f)
以字符串形式返回每个文件名的长度,这不是您想要的
您可以使用带有生成器表达式的sum
函数,该表达式输出由os.walk
生成的文件名列表的长度:
sum(len(filenames) for _, _, filenames in os.walk(path))
在
-循环的之外定义一个变量,以便所有后续循环都可以将文件名长度附加到:
import os
path = '/home/runner/TestP1'
lenghs = []
for root,d_names,f_names in os.walk(path):
for f in f_names:
lenghs.append(len(f))
print(lengths)
您是否试图查找所有文件名的长度之和,或者目录和子目录中有多少文件和文件夹?
def fileCount:
count = 0
for filename in os.listdir(folder):
path = os.path.join(folder, filename)
if os.path.isfile(path):
count += 1
elif os.path.isfolder(path):
count += fileCount(path)
return count