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

Python如何拆分txt每行中前置句子与行尾的数值内容

Python实现每行句子与末尾数值拆分方案

核心逻辑:由于待提取的数值固定在每行最末尾,仅和前面句子内容以空格分隔,直接使用字符串右分割方法即可避开句子内部包含数字、点号、空格的干扰,不需要编写复杂正则。

具体实现步骤

  • 逐行读取目标txt文件,自动跳过空行避免运行报错
  • 对每行有效内容,从最右侧的第一个空格位置做一次拆分,直接得到完整句子、末尾数值两部分
  • 按需将数值转换为int/float类型,结果可存入列表后续处理,也可直接导出为两列格式的表格文件

代码示例

# 初始化列表存储拆分结果
split_result = []
# 替换为你的txt文件实际路径
txt_path = "your_data_file.txt"

with open(txt_path, "r", encoding="utf-8") as f:
    for raw_line in f:
        # 清除每行首尾的换行符、多余空白
        line = raw_line.strip()
        if not line:
            continue
        # 从最右侧按空格拆分,仅拆分1次
        sentence, num_part = line.rsplit(" ", 1)
        # 数值格式转换,根据你的数据类型选int或float即可
        try:
            number = int(num_part)
            # 若数值含小数替换为 number = float(num_part)
        except ValueError:
            print(f"格式异常跳过该行:{line}")
            continue
        split_result.append([sentence, number])

# 打印验证结果
for s, n in split_result:
    print(f"提取句子:{s} | 提取数值:{n}")

# 若需要导出为两列csv,取消注释下面代码即可
# import pandas as pd
# pd.DataFrame(split_result, columns=["句子内容", "对应数值"]).to_csv("result.csv", index=False, encoding="utf-8-sig")

注意事项

不推荐使用从左匹配空格、正则提取数字的写法:如果句子内部本身包含空格、数字(例如I bought 3 cups of coffee in 2024, taste is so so. -2),这类写法很容易把句子内部的数字误识别为目标值。rsplit(" ", 1)是针对当前场景最简洁、容错率最高的实现方式,完全适配你给出的行格式规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:27:14