Python逐行读取文本文件时如何提取存储每行指定片段内容
文本字段提取实现方案
你可以通过两步拆分的方式准确提取目标字段,避免因为字段本身包含空格、特殊字符导致拆分错误,具体实现逻辑如下:
- 逐行读取文件后先对每行做首尾去空处理,跳过无内容的空行
- 第一次拆分用
:作为分隔符,截取分隔符前的内容,过滤掉行尾的数值段 - 第二次拆分用
_作为分隔符,从右往左拆分3次,将前半段内容拆为4个部分,拆分结果的第一个元素就是你需要提取的首段字段 - 将提取到的字段追加存入预先定义的结果列表即可,供后续程序调用
代码示例
# 初始化存储提取结果的列表 result = [] # 替换为你的目标文本文件实际路径 file_path = "target.txt" with open(file_path, "r", encoding="utf-8") as f: for line in f: # 去除每行首尾的换行符、空白字符,跳过空行 line_content = line.strip() if not line_content: continue # 第一次拆分:按:分割,取下划线分隔的前半段 underscore_section = line_content.split(":")[0] # 第二次拆分:从右往左用_拆分3次,兼容首字段含特殊字符的场景 parts = underscore_section.rsplit("_", 3) # 提取首字段存入列表 result.append(parts[0]) # 验证输出结果 print(result)
针对你给出的示例文本,运行上述代码后得到的输出为:
['Shahran', 'Shahran', 'Pardis', 'Shahrake Qods', 'Shahrake Gharb']
注意:不要直接用
split("_")全量拆分字符串,当首字段本身包含下划线时,全量拆分就会把首字段拆成多段导致提取错误;用rsplit("_", 3)指定从右拆分3次的写法鲁棒性更强,不管首字段包含空格还是下划线,都能准确拆分出4段内容。
内容的提问来源于stack exchange,提问作者senseiselim
相关产品推荐
相关产品推荐

