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

Python实现文本文件每行指定数字互换及等号替换

解决方案

你的代码已经完成了等号替换为|的步骤,还需要添加逐行交换特定位置数字的逻辑。根据你给出的例子,我们可以明确交换规则:将每行等号左侧数字的第6-7位(对应字符串索引5-6)与右侧数字的第3-4位(对应字符串索引2-3)互换,再完成等号替换。

修改后的完整代码如下:

with open('track.txt', 'r') as z:
    lines = z.readlines()

processed_lines = []
for line in lines:
    line = line.strip()
    if not line:
        continue
    # 分割等号两侧的数字串
    left_part, right_part = line.split('=')
    # 交换指定位置的子串
    new_left = left_part[:5] + right_part[2:4] + left_part[7:]
    new_right = right_part[:2] + left_part[5:7] + right_part[4:]
    # 拼接成带|的新行
    processed_lines.append(f"{new_left}|{new_right}\n")

with open('track2.txt', 'w') as z:
    z.writelines(processed_lines)

代码说明

  • 逐行读取原文件内容,避免一次性读取大文件占用过多内存
  • 跳过空行,确保处理逻辑只作用于有效内容行
  • 通过字符串切片完成指定位置的子串交换:
    • 左侧数字:保留前5位,替换第6-7位为右侧数字的第3-4位,保留第8位及之后的内容
    • 右侧数字:保留前2位,替换第3-4位为左侧数字的第6-7位,保留第5位及之后的内容
  • 最后将所有处理后的行写入新文件

如果你的交换位置需求有变化,只需调整代码中切片的索引值即可(Python字符串索引从0开始)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 17:42:16