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

如何用Python从Windows注册表获取文件属性中的类型描述信息

Python 获取Windows文件类型显示文本实现

要实现传入文件扩展名返回对应系统显示的文件类型(比如.rar返回WinRAR 压缩文件、.exe返回应用程序,即文件属性窗口中“文件类型”栏的文本),可以通过读取Windows注册表实现,具体方案如下:

实现逻辑

文件类型描述存储在HKEY_CLASSES_ROOT注册表路径下,查询流程为:

  1. 根据输入的扩展名查询HKEY_CLASSES_ROOT\.{扩展名}的默认值,拿到对应的文件类名
  2. 再查询HKEY_CLASSES_ROOT\{类名}的默认值,即为目标文件类型描述

完整实现代码

import winreg

def get_file_type_desc(ext: str) -> str:
    # 统一补充扩展名的点前缀
    ext = ext.lower().strip()
    if not ext.startswith('.'):
        ext = f'.{ext}'
    
    try:
        # 第一步:获取扩展名对应的类标识
        class_key = winreg.QueryValue(winreg.HKEY_CLASSES_ROOT, ext)
        if not class_key:
            return f"{ext[1:].upper()} 文件"
        # 第二步:获取类标识对应的类型描述
        type_desc = winreg.QueryValue(winreg.HKEY_CLASSES_ROOT, class_key)
        return type_desc if type_desc else f"{ext[1:].upper()} 文件"
    except FileNotFoundError:
        # 未注册的扩展名返回兜底结果
        return f"{ext[1:].upper()} 文件"

# 测试用例
if __name__ == '__main__':
    print(get_file_type_desc('rar'))  # 示例输出:WinRAR 压缩文件
    print(get_file_type_desc('.exe')) # 示例输出:应用程序
    print(get_file_type_desc('txt'))  # 示例输出:文本文档

相关说明

  • 该实现仅适用于Windows系统,依赖Python标准库winreg,无需安装第三方依赖
  • 返回结果和系统语言完全匹配,中文系统返回中文描述、英文系统返回英文描述
  • 你之前找到的读取默认打开程序的代码,和本实现的前半段逻辑一致,只是第二步访问的注册表路径不同:获取默认打开程序需要访问{类名}\shell\open\command子项,而获取文件类型描述直接读取类名的默认值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:24:00