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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:06:02