韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python基础教程 > 详解Python中open()函数指定文件打开方式的用法

详解Python中open()函数指定文件打开方式的用法

open

头像

silencement

2019-07-27 10:37:494209浏览 · 0收藏 · 0评论

当我们用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+'不清空,不创建

不要用二进制模式打开文本文件

先看下面代码的“诡异”现象。

假设在windows下,我有个f.txt文件,里面的内容是下面这样的。

hello

world

代码一

with open('f.txt', 'r') as f: 
    print f.readlines() 
with open('f.txt', 'rb') as f: 
    print f.readlines()

输出

['hello\n', 'world\n']
['hello\r\n', 'world\r\n']

代码二

with open('f.txt', 'rb') as f: 
    data = f.read() 
with open('f.txt', 'w') as f: 
    f.write(data)

打开文件,变成了下面这样,

hello^M

world^M

首先,先理解换行符'\n'跟回车符'\r'的概念。

'\n',换行符(LF,Line-Feed ),指新的一行。
'\r',回车符(CR,Carriage-Return),指回到行头。

因为在不同系统下的换行标识是不一样的。

windows->'\r\n'
unix->'\n'
mac->'\r'

这就是为什么windows下的txt在linux打开的时候行尾会有'^M'。

这就是为什么我在linux下跑脚本导出游戏数据下到本地windows打开变成了一行。

其实文本文件也是二进制文件,是文本编码的二进制文件,文本文件对一些不可见字符进行了处理,增加可读性。

在python中,可以通过os.linesep获得当前系统的换行标识。比如在windows下,os.linesep是'\r\n'。

在python中操作换行标识的时候,并不用管是在什么平台下,直接用'\n'就行了,python会自动根据不同系统转成不同标识。

有了上面这些理论依据,就可以解析本文开头代码的“诡异”现象了。

代码一中,用文本模式打开的文件,换行标识会被python处理成'\n',而用二进制模式打开则原封不动。

代码二中,用二进制模式打开,用文本模式写入。二进制打开原封不动还是'\r\n',而文本模式写入的时候因为python会把'\n'转成'\r\n',所以其实就等于是写入了'\r\r\n',于是就多了个'^M'。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

丰满岳妇张开腿任你躁| 国精产品一品二品国精HTC| 他的大手在秘密花园游走漫画| BOBO浏览器| 他的大手在秘密花园游走漫画| 少女配狗视频大全播放| 法国《监狱伦理3》| 《黑人性奴2》免费观看| 成人做爰100部片| 上司趁老公不在到家拜访| 《明明说好要带避孕套了》中文版| 国产在线观看免费全集电视剧网站| -区二三国产好的精华波品牌介绍| 《厨房韵母2》动漫下线了吗| 日产精品一线二线三线芒果| 窝窝影院在线观看免费播放电视剧| WWW.17C嫩嫩草色视频蜜桃| 蜜糖在线观看免费高清电视剧| 军官(巨肉高H)| 旅游换伴交流故事100篇| 特级做A爱片久久久久久| Y8848影院电视剧免费| 王丽娟一夜被躁五次| 《性88分钟》| 人马杂配MV的视频在哪里看| 高压监狱4伦理HD| 无风险9.1免费版观看| 斗破苍穹年番免费高清观看| 豆传媒剧国产MV有什么特点| 国产精华最好的产品入口| 女仆装| 屁股翘起来跪在床上有好处吗 | 免费网站在线观看大全电视剧 | 妈妈がだけの心に漂う| 少妇荡乳欲伦交换A片欧美| 《十二寡妇肉床艳史》| 成品人和精品人的区别哪个好| 夹好我的精去上课别流出来了| 苏软软汆肉的日常 花卷| 男人女人免费观看40集电视剧| 《金莲浮史》台湾绝版