gpt4 book ai didi

python - 如何在制表符分隔的 txt 文件的两列之间交换值

转载 作者:行者123 更新时间:2023-11-28 22:41:53 25 4
gpt4 key购买 nike

我试图使用制表符分隔的 txt 文件,发现有一些错误导致两个特定列中的值被交换,这迫使我的程序关闭。

该文件总共有 9 列,有时第 3 列和第 4 列会互换。我正在尝试编写一个 python 程序,当第 3 列>第 4 列时,它将交换第 3 列和第 4 列中的值。到目前为止,这是我拥有的代码,但我不明白如何更改文件(或编写更改)一旦我将第 3 列和第 4 列设置为它们的新值。

with open('pythonTest.rtf') as x:
for line in x:
columns=line.split()
if len(columns)==9:
x=columns[3]
y=columns[4]
if columns[4]>columns[3]:
columns[3]=y
columns[4]=x

任何指导将不胜感激。谢谢你,埃文麦克马洪

最佳答案

试试这个

contents = []
with open('pythonTest.rtf') as x:
for line in x:
columns=line.split('\t')
if len(columns) == 9 and columns[4]>columns[3]:
columns[4],columns[3] = columns[3],columns[4]
contents.append('\t'.join(columns))
with open('pythonTest.rtf', 'w') as y:
for line in contents:
y.write(line)

或者,如果您可以创建一个新文件,则不必将其存储在内存中。您也可以用新的覆盖第一个:

import os
with open('pythonTest.rtf') as x, open('pythonTest.rtf.tmp', 'w') as y:
for line in x:
columns=line.split('\t')
if len(columns) == 9 and columns[4]>columns[3]:
columns[4],columns[3] = columns[3],columns[4]
y.write('\t'.join(columns))
os.remove('pythonTest.rtf')
os.rename('pythonTest.rtf.tmp', 'pythonTest.rtf')

关于python - 如何在制表符分隔的 txt 文件的两列之间交换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32237654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com