在 python 中,打开文件进行操作时可以提供一些标志。我有点困惑,无法找到允许我随机写入而不截断的组合。我要找的行为等价于C:不存在就创建,否则就打开写(不截断)
打开(文件名,O_WRONLY|O_CREAT)
Python 的 document令人困惑(对我来说):"w"
将首先截断文件,"+"
应该意味着更新,但是 "w+"
无论如何都会截断它。有没有办法在不求助于低级 os.open()
接口(interface)的情况下实现这一点?
注意:"a"
或 "a+"
也不起作用(如果我在这里做错了,请更正)
cat test.txt
eee
with open("test.txt", "a+") as f:
f.seek(0)
f.write("a")
cat test.txt
eeea
是不是append模式一定要写到最后?
最佳答案
你可以用 os.open 来做:
import os
f = os.fdopen(os.open(filename, os.O_RDWR | os.O_CREAT), 'rb+')
现在你可以在文件中间读、写、查找等等。并创建文件。在 Python 2 和 3 上测试。
关于python - 打开文件进行随机写入而不截断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28918302/