首页 > 解决方案 > 如何在不打开/关闭文件的情况下读取和写入同一个文件

问题描述

我想知道是否可以在无需打开和关闭文件的情况下读取和修改文件?

这就是我想做的:

file = open("a_file.txt", "w+")
file.write("some text")
print(file.read())

这不起作用,因为它产生一个空字符串而不是"some text"我希望获得的字符串。

我发现的大多数答案都建议先关闭文件,然后再打开它,例如:

file = open("a_file.txt", "w+")
file.write("some text")
file.close()
file = open("a_file.txt", "r")
print(file.read())
file.close()
file = open("a_file.txt", "w+") # open it again as I will write more into it later

或者会推荐这样的东西,我只在需要时打开它:

with open('a_file.txt','w+') as f:
    f.write("some text")
with open('a_file.txt','r') as f:
    print(f.read())

这些看起来都不是很有效,因为我需要在这些文件中读写很多,所以我正在寻找一种有效的方法。
我可以将文件的内容存储在一个单独的变量中,但这只是打破了最初拥有文件的大部分目的。

有没有一种有效的方法来做我需要的事情,或者我是否坚持很多打开/关闭?

标签: python-3.xfile

解决方案


推荐阅读