如何读取长文本文件并提取打印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
相关产品推荐
相关产品推荐

