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

如何使用Python读取.dat配置文件并提取Name与Key字段值

Python读取dat文件提取Name、Key字段实现方案

问题说明

待读取的license.dat为标准INI结构,内容如下:

[Registration information]
Name=nikam
Key=KDWOE

需要提取Name对应的字段值、Key对应的字段值。
之前尝试的两种写法存在明显问题:

  • 第一种用默认空格做分隔符拆分每行:遇到带空格的节标题[Registration information]会被错误拆分,且Name=xxx这类无空格的行不会被拆成键值对,完全无法拿到目标值;如果后续直接按等号全量拆分,遇到Key值本身包含等号的场景(比如实际授权Key常带base64编码的等号补位),会把完整的Key值切碎。
  • 第二种写法仅能读取完整文件内容,未做结构化解析,无法直接拿到字段对应值。

实现方案

方案1:轻量逐行解析(无第三方依赖,逻辑可控)

逐行遍历文件内容,跳过空行和方括号包裹的节标题,每行仅按第一个等号拆分(避免值内等号导致拆分错误),存入字典后直接取值即可:

license_info = {}
with open("./license.dat", "r", encoding="utf-8") as f:
    for raw_line in f:
        line = raw_line.strip()
        # 跳过空行、节标题行
        if not line or (line.startswith("[") and line.endswith("]")):
            continue
        # 只拆分第一个等号,兼容值内包含等号的场景
        field, value = line.split("=", maxsplit=1)
        license_info[field.strip()] = value.strip()

# 提取目标值
name = license_info["Name"]
auth_key = license_info["Key"]
print("Name值:", name)
print("Key值:", auth_key)

方案2:用标准库configparser解析(推荐,适配INI格式全场景)

该文件本身就是标准INI格式,直接用Python内置的configparser库解析即可,不需要自己写边界判断逻辑,自动处理空行、空格、特殊字符等场景:

import configparser

cfg = configparser.ConfigParser()
cfg.read("./license.dat", encoding="utf-8")

# 按节名、字段名取值
name = cfg.get("Registration information", "Name")
auth_key = cfg.get("Registration information", "Key")
print("Name值:", name)
print("Key值:", auth_key)

两种方案都能正确识别带等号的Key值,不会出现内容截断的问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:54:32