是否有一种方法可以同时打开文件进行读写?
作为一种变通方法,我打开文件进行写入,关闭文件,然后再次打开文件进行读取。但是有没有一种方法可以同时打开一个文件进行读写呢?
是否有一种方法可以同时打开文件进行读写?
作为一种变通方法,我打开文件进行写入,关闭文件,然后再次打开文件进行读取。但是有没有一种方法可以同时打开一个文件进行读写呢?
当前回答
我曾经尝试过这样的东西,它如预期的那样工作:
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()只是这个操作系统调用的一个小包装。