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

如何读取长文本文件并提取打印MY_ID对应的纯ID值?

提取MY_ID后的纯数字ID值

你的代码已经能定位到包含MY_ID=的字段,但直接打印整个字段会带上前缀。以下几种方法可以帮你提取后面的纯数字:

方法1:字符串分割(最直接)

利用split('=')将字段按等号拆分,取拆分后的第二个元素就是纯数字ID:

def read_long_text_file():
    # 用原始字符串避免路径转义问题,Windows路径推荐写法
    with open(r"path\sample.txt", "r") as f:
        for line in f:
            for part in line.split():
                if "MY_ID=" in part:
                    # 按=分割后取索引1的元素
                    id_num = part.split('=')[1]
                    print(id_num)
            # Python3中print需要加括号,Python2可保留print line
            # print(line)

read_long_text_file()

方法2:字符串切片

通过定位MY_ID=的位置,截取后续内容:

def read_long_text_file():
    with open(r"path\sample.txt", "r") as f:
        prefix = "MY_ID="
        prefix_len = len(prefix)
        for line in f:
            for part in line.split():
                if prefix in part:
                    # 找到前缀起始位置,截取后面的内容
                    start_pos = part.index(prefix) + prefix_len
                    id_num = part[start_pos:]
                    print(id_num)

read_long_text_file()

方法3:正则表达式(适合复杂格式场景)

如果ID格式有变化(比如包含字母、更长位数等),正则表达式更灵活:

import re

def read_long_text_file():
    with open(r"path\sample.txt", "r") as f:
        # 匹配MY_ID=后面的数字序列
        id_pattern = re.compile(r"MY_ID=(\d+)")
        for line in f:
            match_result = id_pattern.search(line)
            if match_result:
                # 提取分组中的数字部分
                print(match_result.group(1))

read_long_text_file()

另外注意两个小细节:

  • 路径中的反斜杠在Python中会被视为转义符,建议用原始字符串r"path\sample.txt"或者双反斜杠"path\\sample.txt"
  • 原代码中的print line是Python2语法,Python3需要改为print(line)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 03:21:02