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

如何使用Python从TXT文件中提取首个与末位数值

解决提取文件中第一个和最后一个数值的问题

我来帮你搞定这个需求!你想要从目标TXT文件里提取第一个和最后一个数值,但目前的代码存在几个问题,导致输出不符合预期:

  • re.match('\d+', x) 只会匹配每行开头的整数,不仅漏掉了带小数点的数值(比如4.6),也无法捕获行内其他位置的数字
  • 代码只是逐行打印匹配到的内容,没有把所有数字统一收集起来,自然没法直接获取首尾两个值
  • 文件路径里的\t会被Python当成制表符转义,容易导致路径错误,建议用原始字符串或者双反斜杠处理

修正后的代码

import re

# 用原始字符串避免路径转义问题
with open(r"C:\testo.txt", "r") as fp:
    # 读取整个文件内容,而不是逐行读
    content = fp.read()
    # 匹配所有整数和小数:\d+匹配整数部分,\.?匹配可选的小数点,\d*匹配可选的小数部分
    all_numbers = re.findall(r'\d+\.?\d*', content)
    # 提取第一个和最后一个数值
    if all_numbers:
        first_num = all_numbers[0]
        last_num = all_numbers[-1]
        print(f"{first_num} {last_num}")

代码说明

  1. 路径处理:用r"C:\testo.txt"的原始字符串格式,避免\t被转义成制表符
  2. 正则匹配:r'\d+\.?\d*'可以匹配所有整数(如1、58)和带小数点的数值(如4.6、4.2)
  3. 收集与提取:一次性读取整个文件内容,用re.findall捕获所有符合要求的数值,最后取列表的第一个和最后一个元素打印

运行这段代码后,就能得到你期望的输出:1 58

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 20:02:44