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
相关产品推荐
相关产品推荐

