You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python代码统计目录中特定后缀文件的总大小?

统计特定类型文件的总大小

没问题,你的现有代码已经能很好地统计当前目录下所有文件的总大小了!要改成统计特定类型文件(比如.py、.txt)的总大小,只需要在判断条件里加上文件扩展名匹配的逻辑就行,下面给你几种实用的实现方式:


方式1:统计单个类型的文件

如果只需要统计某一种扩展名的文件(比如仅.py),直接用str.endswith()判断扩展名即可:

import os

# 统计当前目录下所有.py文件的总大小
total_py_size = sum(os.path.getsize(f) for f in os.listdir('.') if os.path.isfile(f) and f.endswith('.py'))
print(f"所有.py文件总大小:{total_py_size} 字节")

这里把扩展名判断和原有的os.path.isfile(f)条件用and结合,就能精准筛选出目标文件。


方式2:统计多种类型的文件

如果需要同时统计多个扩展名的文件(比如.py和.txt),推荐把目标扩展名放在一个集合里,用os.path.splitext()来获取文件扩展名并判断:

import os

# 定义要统计的文件扩展名集合(按需添加或修改)
target_extensions = {'.py', '.txt'}

# 统计当前目录下指定类型文件的总大小
total_target_size = sum(
    os.path.getsize(f)
    for f in os.listdir('.')
    if os.path.isfile(f) and os.path.splitext(f)[1] in target_extensions
)
print(f"指定类型文件总大小:{total_target_size} 字节")

os.path.splitext(f)[1]会返回文件的完整扩展名(比如test.txt会得到.txt),用集合来存储目标扩展名的好处是判断效率更高,也方便后续扩展类型。


额外补充:递归统计子目录中的文件

如果你的目录包含子文件夹,且需要递归统计所有子目录里的目标文件,可以用os.walk()来实现:

import os

target_extensions = {'.py', '.txt'}
total_size = 0

# 遍历当前目录及其所有子目录
for root, _, files in os.walk('.'):
    for file in files:
        # 判断文件扩展名是否在目标集合中
        if os.path.splitext(file)[1] in target_extensions:
            # 拼接完整文件路径并累加大小
            total_size += os.path.getsize(os.path.join(root, file))

print(f"递归统计指定类型文件总大小:{total_size} 字节")

这个版本会遍历所有层级的子目录,适合更复杂的目录结构场景。

内容的提问来源于stack exchange,提问作者i.darker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:51:26