详解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实现嵌套列表去重方法示例
Dec 28 Python
pandas.read_csv参数详解(小结)
Jun 21 Python
pygame实现贪吃蛇游戏(下)
Oct 29 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 Python
Windows 下python3.8环境安装教程图文详解
Mar 11 Python
python字符串判断密码强弱
Mar 18 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
浅析Python __name__ 是什么
Jul 07 Python
python中str内置函数用法总结
Dec 27 Python
python通过opencv调用摄像头操作实例分析
Jun 07 Python
Python中request的基本使用解决乱码问题
Apr 12 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
图书管理程序(三)
2006/10/09 PHP
PHP+javascript液晶时钟
2006/10/09 PHP
php 保留小数点
2009/04/21 PHP
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
微信小程序动态显示项目倒计时
2019/06/20 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
微信小程序图片加载失败时替换为默认图片的方法
2019/12/09 Javascript
python网络编程之读取网站根目录实例
2014/09/30 Python
Python selenium文件上传方法汇总
2020/11/19 Python
Python 转义字符详细介绍
2017/03/21 Python
遗传算法之Python实现代码
2017/10/10 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
大学生怎样进行自我评价
2013/12/07 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
基层党员公开承诺书
2014/05/29 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
Python基础之赋值,浅拷贝,深拷贝的区别
2021/04/30 Python
实现GO语言对数组切片去重
2022/04/20 Golang