python-3.x - 如何在不打开/关闭文件的情况下读取和写入同一个文件
问题描述
我想知道是否可以在无需打开和关闭文件的情况下读取和修改文件?
这就是我想做的:
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())
这些看起来都不是很有效,因为我需要在这些文件中读写很多,所以我正在寻找一种有效的方法。
我可以将文件的内容存储在一个单独的变量中,但这只是打破了最初拥有文件的大部分目的。
有没有一种有效的方法来做我需要的事情,或者我是否坚持很多打开/关闭?
解决方案
推荐阅读
- sql - MS Access SQL 代码 - 查询问题(不在)
- android - 如果抽象类在 Kotlin 中有超过 1 个方法,我可以使用 lambda 吗?
- node.js - Mongoose `findOneAndUpdate` 回调不传递更新的文档
- javascript - 发件人未收到在 socker.io 上发送的消息
- python - 在 Python 中读取 .txt 文件
- c++ - C++ 和字符串连接漏洞
- javascript - Nodejs 我可以在后端保存一个数组,并在需要时使用它吗?
- applescript-objc - 如何仅显示字符串中的前 3 个数字
- reactjs - React-Bootstrap NavDropDown 是背景色,没有填充完整的下拉菜单,它使顶部和底部保持白色
- node.js - 在电子 + 反应应用程序中执行 child_process