使用fileinput库实现不使用临时变量交换不同行的数字的解决方法如下:
import fileinput
def swap_lines(filename, line1, line2):
# 读取文件内容
with fileinput.FileInput(filename, inplace=True) as file:
lines = file.readlines()
# 交换两行的数字
lines[line1-1], lines[line2-1] = lines[line2-1], lines[line1-1]
# 将交换后的内容写回文件
with open(filename, 'w') as file:
file.writelines(lines)
# 示例使用
filename = 'test.txt'
line1 = 2 # 第2行
line2 = 4 # 第4行
swap_lines(filename, line1, line2)
在上述代码中,我们通过使用fileinput.FileInput
函数和inplace=True
参数,实现了对文件内容的原地修改。首先,我们使用FileInput
打开文件,并将其内容读入lines
列表中。然后,根据给定的行号,交换lines
列表中对应行的元素。最后,我们使用open
函数以写入模式打开文件,并将修改后的lines
列表写回文件中。
注意:行号从1开始计数,因此需要将行号减去1才能得到正确的索引。
请替换filename
为实际的文件名,并根据需要调整line1
和line2
的值。