f=open('文件名','模式')
'w' 模式将创建一个文件并打开它以进行写入(最终您无法使用相同的文件对象进行读取) 'r+' 模式将打开文件以进行读取和写入,但是如果文件尚未存在,它将不会创建一个新的,而不是它会返回错误。
现在考虑这个场景......我想创建一个文件并希望打开它以进行读取和写入..
这是一种方法,它确实有效......
f = open('filename', 'w')
f.close()
f = open('filename', 'r+')
我尝试了另一种不同的方式..
>>> f1 = open('filename','w')
>>> f2 = open('filename', 'r')
>>> f1.write('test string')
11
>>> f2.read()
''
>>> f1.close()
>>> f2.read()
'test string'
是的,它没有按我预期的方式工作(类似于管道)
我的问题是
函数会f2.read()
尝试直接从磁盘读取还是从文件的现有缓冲区缓存中读取?
更新后的文件何时会写回磁盘?很明显,f1.close()
它将从内存缓冲区更新磁盘中的文件。但是有没有办法手动强制磁盘写入?
所以它会按如下方式工作
f1.write('test string')
#force disk write
f2.read('test string') #now it should read correct data