gpt4 book ai didi

python - 如何在Python中的一个变量中同时以读取和追加模式打开文件?

转载 作者:行者123 更新时间:2023-12-01 07:47:37 25 4
gpt4 key购买 nike

'r' 将读取文件,'w' 将从头开始在文件中写入文本,'a' 将附加。如何打开文件同时读取和追加?

我尝试了这些,但出现了错误:

open("filename", "r,a")

open("filename", "w")
open("filename", "r")
open("filename", "a")

错误:

invalid mode: 'r,a'

最佳答案

您正在寻找 r+/a+/w+ 模式,该模式允许对文件进行读写操作。

使用r+,位置最初位于开头,但读取一次会将其推向末尾,从而允许您追加。对于 a+,位置最初位于末尾。

with open("filename", "r+") as f:
# here, position is initially at the beginning
text = f.read()
# after reading, the position is pushed toward the end

f.write("stuff to append")
with open("filename", "a+") as f:
# here, position is already at the end
f.write("stuff to append")

如果您需要重新读取整个内容,可以通过执行 f.seek(0) 返回到起始位置。

with open("filename", "r+") as f:
text = f.read()
f.write("stuff to append")

f.seek(0) # return to the top of the file
text = f.read()

assert text.endswith("stuff to append")

(进一步阅读:What's the difference between 'r+' and 'a+' when open file in python?)

您还可以使用w+,但这会截断(删除)所有现有内容。

这是来自 another SO post 的一个漂亮的小图表。 :

Decision Tree: What mode should I use?

关于python - 如何在Python中的一个变量中同时以读取和追加模式打开文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56381066/

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