飘逸的python - 理解打开文件的模式

当我们用open()函数去打开文件的时候,有好几种打开的模式。

 
'r'->只读
'w'->只写,文件已存在则清空,不存在则创建。
'a'->追加,写到文件末尾
'b'->二进制模式,比如打开图像、音频、word文件。
'+'->更新(可读可写)

 
这个带'+'号的有点难以理解,上代码感受下。
with open('foo.txt', 'w+') as f:
    f.write('bar\n')
    f.seek(0)  
    data = f.read()
可以看到,上面这段代码,它不但可以写,还可以读出来。注意要先定位到开头,f.seek(0),不然读出来的是空数据。
一些人可能会有迷惑,既然带'+'号是可读可写,那'w+'跟'r+'有什么不同。
那就是,
'w+'会清空,会创建 (文件已存在则清空,不存在则创建。)
'r+'不清空,不创建

 

posted @ 2013-08-09 23:54  pangbangb  阅读(204)  评论(0编辑  收藏  举报