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

Python读取文件按最后一个冒号拆分提取地址写入新文件问题

错误原因
  • 你使用read()直接读取整个文件为单个长字符串,直接执行rsplit(":",1)是对整个长字符串从右向左拆分1次,自然只能拿到最后一行的地址,没有按行处理每个独立的条目。
  • 手动打开输出文件没有使用上下文管理器,存在资源泄漏风险,with语句包裹的文件会自动关闭,你后续手动调用file_to_open.close()属于多余操作。
  • 没有给每个地址添加换行符,写入后内容会连在一起不符合输出要求。
  • 原代码中输出文件名为adresses.txt(拼写错误,少了一个d),和你预期的addresses.txt不一致。
修正后代码
# 使用with上下文管理器管理输出文件,自动处理关闭逻辑
with open('addresses.txt', 'w', encoding='utf-8') as out_file:
    with open('data.txt', 'r', encoding='utf-8') as in_file:
        # 逐行读取文件内容
        for line in in_file:
            # 对单行内容从右拆分1次,取最后一段即为地址,strip()去除多余换行/空格
            address = line.rsplit(':', 1)[-1].strip()
            # 写入地址加换行符
            out_file.write(f"{address}\n")
代码说明
  • 采用逐行读取的方式处理每个用户条目,避免一次性加载大文件的内存占用问题
  • 单行拆分逻辑适配你文件中每列用冒号分隔、地址是最后一列的规则,即便地址本身包含冒号也能正确提取
  • 使用w模式写入输出文件,每次运行都会生成全新的地址文件,不会出现内容重复追加的问题
  • 两个文件都用上下文管理器管理,无需手动调用close方法,避免资源泄漏

内容的提问来源于stack exchange,提问作者Mariusz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:45:03