位置: 编程技术 - 正文
推荐整理分享详解Python中open()函数指定文件打开方式的用法(python openfoam),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:python openfoam,python 中open,python里面的open怎么用,python中open的用法,python 中open,python 中open,python中open的用法,python 中open,内容如对您有帮助,希望把文章链接给更多的朋友!
文件打开方式
当我们用open()函数去打开文件的时候,有好几种打开的模式。
'r'->只读'w'->只写,文件已存在则清空,不存在则创建。'a'->追加,写到文件末尾'b'->二进制模式,比如打开图像、音频、word文件。'+'->更新(可读可写)
这个带'+'号的有点难以理解,上代码感受下。
可以看到,上面这段代码,它不但可以写,还可以读出来。注意要先定位到开头,f.seek(0),不然读出来的是空数据。一些人可能会有迷惑,既然带'+'号是可读可写,那'w+'跟'r+'有什么不同。那就是,'w+'会清空,会创建 (文件已存在则清空,不存在则创建。)'r+'不清空,不创建
不要用二进制模式打开文本文件先看下面代码的“诡异”现象。假设在windows下,我有个f.txt文件,里面的内容是下面这样的。
代码一,
输出
代码二,
打开文件,变成了下面这样,
首先,先理解换行符'n'跟回车符'r'的概念。'n',换行符(LF,Line-Feed ),指新的一行。'r',回车符(CR,Carriage-Return),指回到行头。
因为在不同系统下的换行标识是不一样的。
这就是为什么windows下的txt在linux打开的时候行尾会有'^M'。这就是为什么我在linux下跑脚本导出游戏数据下到本地windows打开变成了一行。
其实文本文件也是二进制文件,是文本编码的二进制文件,文本文件对一些不可见字符进行了处理,增加可读性。
在python中,可以通过os.linesep获得当前系统的换行标识。比如在windows下,os.linesep是'rn'。在python中操作换行标识的时候,并不用管是在什么平台下,直接用'n'就行了,python会自动根据不同系统转成不同标识。
有了上面这些理论依据,就可以解析本文开头代码的“诡异”现象了。代码一中,用文本模式打开的文件,换行标识会被python处理成'n',而用二进制模式打开则原封不动。代码二中,用二进制模式打开,用文本模式写入。二进制打开原封不动还是'rn',而文本模式写入的时候因为python会把'n'转成'rn',所以其实就等于是写入了'rrn',于是就多了个'^M'。
举例讲解Python中字典的合并值相加与异或对比 字典合并值相加在统计汇总游戏数据的时候,有些数据是是每天用字典存的,当我要对多天汇总的时候,就需要合并字典了。如果key相同的话它们的值
全面理解Python中self的用法 刚开始学习Python的类写法的时候觉得很是麻烦,为什么定义时需要而调用时又不需要,为什么不能内部简化从而减少我们敲击键盘的次数?你看完这篇
Python中规范定义命名空间的一些建议 API的设计是一个艺术活。往往需要其简单、易懂、整洁、不累赘。很多时候,我们在底层封装一个方法给高层用,而其它的方法只是为了辅助这个方法
标签: python openfoam
本文链接地址:https://www.jiuchutong.com/biancheng/387569.html 转载请保留说明!上一篇:Python中import导入上一级目录模块及循环import问题的解决(python中import导入模块的方法)
下一篇:举例讲解Python中字典的合并值相加与异或对比(在python中的用法)
友情链接: 武汉网站建设