如何自动提取TXT文件中以(71)开头行的下一行内容?
问题描述
我是编程新手,想要从TXT文件中提取信息,具体需要获取以(71)开头行的下一行内容。目前我手动删除该行的换行符来获取所需信息,希望能实现这个过程的自动化。
当前代码
fhand = input('Ingrese nombre de archivo: ') file = open(fhand, encoding='utf8') pais = dict() provincia = dict() for line in file : if line.startswith('(71)') : line = line.rstrip() lista = line.split(' ') pais[lista[-1]] = pais.get(lista[-1], 0) + 1 if pais == 'AR': provincia[lista[-2]] = provincia.get(lista[-2], 0 ) + 1 print(pais) print(provincia) print(count, cuenta)
修正后的解决方案
你当前的代码逻辑是统计(71)开头行里的国家和阿根廷省份数据,但和你实际需求(提取该行的下一行内容)不符,以下是符合需求的自动化实现代码:
# 获取文件名 file_name = input('请输入文件名: ') # 使用with语句自动管理文件生命周期,无需手动关闭 with open(file_name, encoding='utf8') as file: need_extract_next = False extracted_lines = [] for line in file: if need_extract_next: # 自动去除换行符和首尾空白字符 cleaned_line = line.strip() extracted_lines.append(cleaned_line) need_extract_next = False continue # 检测到目标行,标记需要提取下一行 if line.startswith('(71)'): need_extract_next = True # 输出提取结果 print("提取到的内容:") for content in extracted_lines: print(content)
代码说明
with open(...)是Python推荐的文件操作方式,会在代码块结束后自动关闭文件,避免资源泄漏- 用
need_extract_next布尔变量记录是否需要读取下一行,实现精准定位目标内容 strip()方法一次性去除换行符和首尾空白,替代手动删除换行符的操作- 提取的内容统一存在
extracted_lines列表中,方便后续批量处理
内容的提问来源于stack exchange,提问作者Pablo Picco Plencovich
相关产品推荐
相关产品推荐

