gpt4 book ai didi

python - 为什么 file.write() 在 Python 中以 r+ 模式附加?

转载 作者:行者123 更新时间:2023-12-05 01:03:42 25 4
gpt4 key购买 nike

假设我有一个文件 content.txt,其内容为 Ex nihilo nihil fit。我愿意用 Ex nihilo nihil est 替换它。代码是:

with open("content.txt", "r+") as f:
content = f.read()
content = content.replace("fit", "est")
print(content)
f.write(content)
f.close()

之后,文件内容变为:

Ex nihilo nihil fit
Ex nihilo nihil est

为什么?我唯一需要的是Ex nihilo nihil est。什么是正确的代码?

最佳答案

r+ 打开文件并在第一个字节处放置一个指针。当您使用 f.read() 时,指针会移动到文件末尾,因此当您尝试写入时,它会从文件末尾开始。要回到起点(以便您可以覆盖),请使用 f.seek(0):

with open("text.txt", "r+") as f:
content = f.read()
content = content.replace("fit", "est")
print(content)
f.seek(0)
f.truncate(0)
f.write(content)
f.close()

关于python - 为什么 file.write() 在 Python 中以 r+ 模式附加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73766401/

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