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

如何获取目录及其所有子目录中所有文件的扩展名?

获取目录及子目录所有文件的扩展名

你可以利用Python的os.path.splitext()方法提取文件扩展名,这个方法会将文件名拆分为"主文件名"和"扩展名"两部分,返回一个元组,其中第二个元素就是带点号的扩展名(比如.txt、.py),无扩展名的文件会返回空字符串。

修改你的代码,专注处理文件部分即可(目录不需要提取扩展名),示例代码如下:

import os
path = os.getcwd()

# 遍历目录及子目录
for dirpath, _, filenames in os.walk(path):
    for file in filenames:
        file_path = os.path.join(dirpath, file)
        # 提取扩展名
        file_ext = os.path.splitext(file)[1]
        # 打印文件路径和对应的扩展名
        print(f"{file_path} : {file_ext}")

如果需要去重并统计每种扩展名的数量,可以用字典来统计:

import os
path = os.getcwd()
ext_count = {}

for dirpath, _, filenames in os.walk(path):
    for file in filenames:
        file_ext = os.path.splitext(file)[1].lower()  # 转小写避免区分.TXT和.txt
        ext_count[file_ext] = ext_count.get(file_ext, 0) + 1

# 打印统计结果
print("文件扩展名统计:")
for ext, count in ext_count.items():
    print(f"{ext}: {count} 个")

说明

  • os.path.splitext(file)[1]:直接获取扩展名,注意保留了点号,如果你需要去掉点号,可以用os.path.splitext(file)[1].lstrip('.')
  • 第二个示例中用lower()统一转为小写,避免大小写不同的同种扩展名被分开统计(比如.PDF和.pdf)

内容的提问来源于stack exchange,提问作者Tim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:25:21