f=open('filename','mode')
“w”模式将创建一个文件并将其打开以进行写入(最终无法使用相同的文件对象读取) “r+”模式将打开文件进行读写,但是如果文件尚未存在,则不会创建新文件,而是返回错误。在
现在考虑一下这个场景。。。 我想创建一个文件,并想打开它读和写。。在
这是一种方法,它确实有效。。。在
f = open('filename', 'w')
f.close()
f = open('filename', 'r+')
我尝试了另一种方法。。在
^{pr2}$是的,它没有像我预期的那样工作(类似于管道)
我的问题是
函数f2.read()
是否尝试直接从磁盘或已可用的文件缓冲缓存中读取?
更新后的文件什么时候写回磁盘?
很明显,f1.close()
将从内存缓冲区更新磁盘中的文件。但是有没有一种方法可以手动强制磁盘写入?
所以它的工作原理如下
f1.write('test string')
#force disk write
f2.read('test string') #now it should read correct data
使用
f.flush()
可以刷新文件数据而不必关闭现在我想要的类似管道的行为可以实现如下
我还有两个问题没有回答。。在
函数f2.read()是否尝试直接从磁盘或已可用的文件缓冲缓存中读取?
更新后的文件什么时候写回磁盘?
我很快就会找到的。。。在
您可以用'open(filename,“w+”)打开文件进行读写:
需要调用“seek”,因为file对象有一个用于读和写的“current position”,seek调用会将当前文件位置重置为文件的开头,以便能够读取您刚刚写入的内容。在
请注意,您可以在再次写入时覆盖现有数据,除非您返回到文件的末尾。如果只想将数据追加到文件中,可以使用模式“a+”而不是“w+”。在
相关问题 更多 >
编程相关推荐