Python 用文本文件中的拆分和读取行替换特定列数据

Python 用文本文件中的拆分和读取行替换特定列数据,python,python-3.x,file,Python,Python 3.x,File,文本文件:Hardware.txt Model Year Plate Owner Acer (2014) A12456 Nitik Dell (2015) S45656 Dane 代码: 我有一个文本文件Hardware.txt,我想更新所有者的姓名,但我总是会出现以下错误: IndexError: list index out of range 请帮助我用pandas更新文本文件,您只需阅读文件,确保分隔符是制表符而不是空格: df = pd.read_c

文本文件:Hardware.txt

Model   Year    Plate   Owner
Acer    (2014)  A12456  Nitik
Dell    (2015)  S45656  Dane
代码:

我有一个文本文件Hardware.txt,我想更新所有者的姓名,但我总是会出现以下错误:

IndexError: list index out of range

请帮助我用pandas更新文本文件,您只需阅读文件,确保分隔符是制表符而不是空格:

df = pd.read_csv("Hardware.txt", sep = "\t")

Model   Year    Plate   Owner
0   Acer    (2014)  A12456  Nitik
1   Dell    (2015)  S45656  Dane
然后更改名称

df.loc[df.Owner == "Dane", "Owner"] = "New Owner"

    Model   Year    Plate   Owner
0   Acer    (2014)  A12456  Nitik
1   Dell    (2015)  S45656  New Owner
拯救

df.to_csv("Hardware.txt", sep="\t")
如果您不想/无法使用pandas,请先读取文件并生成新数据:

id = 1 # just example; input your id
with open("Hardware.txt", "r") as f:
    content = f.readlines()
    lines = [x.strip().split("\t") for x in content]
    lines[id][-1] = "New Owner"
那就省省吧

with open("Hardware.txt", "w") as f:
    f.write("\n".join(["\t".join(x) for x in lines]))

请再次注意,我假定您的文件由制表符分隔\t。适应任何分隔逗号、空格等的内容

您只能读取一次行,但您是在循环中执行此操作的。如何执行此操作,因为我必须选择特定列并替换所有者名称您可以使用像pandas这样的库吗?这将是非常容易的不,我不能,因为我的教授将削减我的标记,我可以使用,但它对标记creterathank你这么多,先生。你的帮助让我开心。再次感谢你
with open("Hardware.txt", "w") as f:
    f.write("\n".join(["\t".join(x) for x in lines]))