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

如何读取文本文件内容并按指定规则填充Python字典

实现思路
  • 先初始化空字典用于存储最终的键值对
  • 用Python内置的上下文管理器with打开目标文本文件,自动处理文件关闭逻辑,避免资源泄露
  • 逐行遍历文件内容,先跳过空行,再对有效行做拆分处理:
    因为文本格式为「引用字段 + 空格 + 双引号包裹的文本内容」,可以直接按第一个双引号做拆分,拆分后前半部分去空格作为键,后半部分去掉末尾的双引号作为值;如果文件可能存在格式不规整的行,也可以用正则匹配提升容错性
  • 将拆分得到的键值对存入字典即可
代码示例

格式规整场景(无异常行)

result_dict = {}
# 替换为你的实际文件路径
file_path = "bible_text.txt"

with open(file_path, "r", encoding="utf-8") as f:
    for line in f:
        # 去除首尾空白字符,跳过空行
        line = line.strip()
        if not line:
            continue
        # 按第一个双引号拆分字符串,最多拆分1次
        key_part, value_part = line.split('"', 1)
        # 处理键末尾多余的空格
        key = key_part.strip()
        # 处理值末尾的闭合双引号
        value = value_part.rstrip('"')
        result_dict[key] = value

低容错场景(可能有格式异常行)

推荐用正则匹配规则过滤无效行,避免拆分报错:

import re

result_dict = {}
file_path = "bible_text.txt"
# 正则规则:匹配行首到双引号前的内容为键,双引号中间的内容为值
pattern = re.compile(r'^([^"]+)\s*"([^"]+)"$')

with open(file_path, "r", encoding="utf-8") as f:
    for line in f:
        line = line.strip()
        if not line:
            continue
        match_res = pattern.match(line)
        if match_res:
            key = match_res.group(1).strip()
            value = match_res.group(2)
            result_dict[key] = value

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 03:06:04