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

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


当前回答

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

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

地点:

f.read(size) -要读取文件的内容,调用f.read(size) 读取一定数量的数据并将其作为字符串返回。

And:

f.r ewrite (string)将string的内容写入文件,返回 一个也没有。

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

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

其他回答

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

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

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

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

地点:

f.read(size) -要读取文件的内容,调用f.read(size) 读取一定数量的数据并将其作为字符串返回。

And:

f.r ewrite (string)将string的内容写入文件,返回 一个也没有。

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

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

总结I/O行为:

Mode r r+ w w+ a a+
Read + + + +
Write + + + + +
Create + + + +
Cover + +
Point in the beginning + + + +
Point in the end + +

上表的决策树:

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