覆盖 python 文件中的一些数据

overwrite some data in a python file

我希望有人能帮助我,我目前正在尝试将一些数据添加到文本文件中,但是我这样做的方式并没有给我想要的东西。我有一个包含 20 多行文本的文件,我想用 30 个新字符覆盖文件的前 30 个字符。我的代码删除了所有内容并仅添加了 30 个字符。请帮助:)

file=open("text.txt", "w")

这是否有问题,为什么它也恢复了所有原始数据而不是简单地覆盖它?

一种方法是将整个文件读入一个字符串,创建一个替换前 30 个字符的新字符串,然后重写整个文件。可以这样做:

with open("text.txt", "r") as f:
    data = f.read()

new_thirty_characters = '<put your data here>'

new_data = new_thirty_characters + data[30:]

with open("text.txt", "w") as f:
    f.write(new_data)

理想情况下,您必须在读取文件后检查文件是否包含超过 30 个字符。另外,不要使用 file 和其他保留名称作为变量名称。