如何打开文件进行读写?

是否有一种方法可以同时打开文件进行读写?

作为一种变通方法,我打开文件进行写入,关闭文件,然后再次打开文件进行读取。但是有没有办法打开文件进行这两个读写呢?

410702 次浏览

r+是同时读写的规范模式。这与使用fopen()系统调用没有什么不同,因为file() / open()只是这个操作系统调用的一个微小包装。

我曾经尝试过这样的东西,它如预期的那样工作:

f = open("c:\\log.log", 'r+b')
f.write("\x5F\x9D\x3E")
f.read(100)
f.close()

地点:

f.read(size) -要读取文件的内容,调用f.read(size) 读取一定数量的数据并以字符串形式返回

和:

f.r ewrite (string)将string的内容写入文件,返回 没有。< / p >

另外,如果你打开关于读取和写入文件的Python教程,你会发现:

'r+'打开文件进行读取和写入。

在Windows上,'b'附加到mode以二进制模式打开文件,因此 还有'rb', 'wb'和'r+b'等模式。

下面是如何读取一个文件,然后写入它(覆盖任何现有的数据),而不关闭和重新打开:

with open(filename, "r+") as f:
data = f.read()
f.seek(0)
f.write(output)
f.truncate()

总结I/O行为:

< span style=" font - family:宋体;"> < / th >模式 < span style=" font - family:宋体;"> r < / th > < span style=" font - family:宋体;"> r + < / th > < span style=" font - family:宋体;"> w < / th > < span style=" font - family:宋体;"> w + < / th > < span style=" font - family:宋体;"> < / th > < span style=" font - family:宋体;"> + < / th > < span style=" font - family:宋体;"道明> >阅读< / < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> < / td写> < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"道明> >创建< / < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"道明> >覆盖< / < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;">开头的点 < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;">结尾点 < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> < / td > < span style=" font - family:宋体;"> + < / td > < span style=" font - family:宋体;"> + < / td >

上表的决策树:

.