详解python中各种文件打开模式


Posted in Python onJanuary 19, 2020

在python中,总的来说有三种大的模式打开文件,分别是:a, w, r

当以a模式打开时,只能写文件,而且是在文件末尾添加内容。

当以a+模式打开时,可以写文件,也可读文件,可是在读文件的时候,会发现读出来的数据为空,是因为a+模式是在文件末尾添加内容,所以其指针已经指到了文件末尾,所以读出来的数据就是空的。

# 在文件末尾添加数据
f = open('test.txt','a+')
f.write('test')
f.close()
# 读出数据为空
f = open('test.txt','a+')
print(f.read())
# 读出数据
f = open('test.txt','a+')
f.seek(0) # 将指针移动到首个字符前
print(f.read())

当以w模式打开时,只能写文件,而且会直接将之前的数据给丢失。

当以w+模式,可读可写,但是如果想读取的内容的话,只能在写内容的时候,同时读取其中的内容,相当于只能读取出你刚刚写入的内容,没有意义

f = open('test.txt', 'w+')
f.write('我不会喜欢你')
f.seek(0)
print(f.read())
f.close()

当以r模式打开文件时,只能读取文件。

当以r+模式打开文件时,可读可写文件。如果是读取文件,会从首个字符开始读取数据,如果是以该模式打开文件,就写数据,则会从首个字符开始写,并一个一个字符的向后面覆盖。如果想从末尾添加内容,则可先read()然后在向其中添加数据。

# 第一次写入内容
f = open('test.txt', 'r+')
f.write('我不会喜欢你') # 内容为:我不会喜欢你
f.close()
# 第二次写入
f = open('test.txt', 'r+')
f.write('其实我')
f.close()   # 内容为: 其实我喜欢你

# 第三次写入
f = open('test.txt', 'r+')
print(f.read())  # 内容为: 其实我喜欢你
f.write(', I love you')
f.close() # 内容为: 其实我喜欢你, I love you

自我感觉r+模式可以多加应用。

ps:下面看下python文件打开的几种访问模式

访问模式 说明
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

总结

以上所述是小编给大家介绍的python中各种文件打开模式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
Python入门篇之字符串
Oct 17 Python
Python的Flask框架中实现简单的登录功能的教程
Apr 20 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
Dec 14 Python
在Python中增加和插入元素的示例
Nov 01 Python
Django框架实现的简单分页功能示例
Dec 04 Python
对python中不同模块(函数、类、变量)的调用详解
Jul 16 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
Aug 22 Python
关于numpy数组轴的使用详解
Dec 05 Python
Python tkinter模版代码实例
Feb 05 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
Jun 02 Python
python基于opencv批量生成验证码的示例
Apr 28 Python
python opencv如何实现图片绘制
Jan 19 #Python
python实现加密的方式总结
Jan 19 #Python
TensorFlow tensor的拼接实例
Jan 19 #Python
python通过opencv实现图片裁剪原理解析
Jan 19 #Python
Python 一行代码能实现丧心病狂的功能
Jan 18 #Python
Python语法之精妙的十个知识点(装B语法)
Jan 18 #Python
Pytorch 实现数据集自定义读取
Jan 18 #Python
You might like
php 购物车实例(申精)
2009/05/11 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
JavaScript职责链模式概述
2016/09/17 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
微信小程序实现发红包功能
2018/07/11 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
el-select数据过多懒加载的解决(loadmore)
2019/05/29 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
python轻松查到删除自己的微信好友
2016/01/10 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
2019/06/20 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
linux系统下pip升级报错的解决方法
2021/01/31 Python
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
应届生学校辅导员求职信
2013/11/07 职场文书
一月红领巾广播稿
2014/02/11 职场文书
出生证明公证书
2014/04/09 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
禁烟标语大全
2014/06/11 职场文书
工作简历自我评价
2015/03/11 职场文书
趣味运动会标语口号
2015/12/26 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
2022/03/16 Redis