详解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中使用base64模块处理字符编码的教程
Apr 28 Python
Python中pygame的mouse鼠标事件用法实例
Nov 11 Python
python 调用c语言函数的方法
Sep 29 Python
使用Python的turtle模块画图的方法
Nov 15 Python
python2.7读取文件夹下所有文件名称及内容的方法
Feb 24 Python
django将图片上传数据库后在前端显式的方法
May 25 Python
Python 实现自动导入缺失的库
Oct 29 Python
使用python 的matplotlib 画轨道实例
Jan 19 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 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弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
extjs ColumnChart设置不同的颜色实现代码
2013/05/17 Javascript
利用jq让你的div居中的好方法分享
2013/11/21 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
python3对接mysql数据库实例详解
2019/04/30 Python
python制作简单五子棋游戏
2019/06/18 Python
python中while和for的区别总结
2019/06/28 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
django框架cookie和session用法实例详解
2019/12/10 Python
python支持多线程的爬虫实例
2019/12/21 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
2015年社区文体活动总结
2015/03/25 职场文书