Python修改TXT文件提取Address列写入新文件输出为空如何解决
问题原因
- 缩进错误:函数内的
with语句块缩进不符合Python语法规范,代码执行时会直接触发语法错误,写入逻辑无法正常运行。 - 遍历对象错误:内层循环错误遍历了
input_file文件名的字符串,而非读取到的文件行内容,自然无法匹配到以0x开头的地址数据。 - 行内容未处理:读取到的每一行
line没有做去空格、分割处理,无法提取出Address列的对应内容。 - 递归逻辑错误:函数末尾直接调用自身,会触发无限递归,即使前面逻辑正确也会导致程序异常崩溃。
- 输出逻辑缺失:没有写入
Address表头,且使用追加模式a会导致多次运行时内容重复追加,不符合需求。
修改后的代码
def extract_address(): input_file = 'Address&Name.txt' destination_file = 'Address.txt' with open(destination_file, 'w', encoding='utf-8') as f1: with open(input_file, 'r', encoding='utf-8') as f2: for line in f2: # 去除行前后空白,按任意空白字符分割 parts = line.strip().split() if not parts: continue # 取分割后的第一个元素就是Address列内容 address = parts[0] f1.write(f"{address}\n") # 调用函数执行 extract_address()
代码说明
- 写入模式改用
w覆盖模式,每次运行都会生成全新的结果文件,避免内容重复。 - 逐行读取文件后先做去空格、分割处理,直接取分割后的第一个元素就是Address列内容,自动忽略行前多余空格。
- 移除了错误的递归调用,避免程序异常。
- 新增空行跳过逻辑,避免源文件内的空行导致报错。
内容的提问来源于stack exchange,提问作者immonual
相关产品推荐
相关产品推荐

