详解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多线程下的变量问题
Apr 28 Python
Python中用于检查英文字母大写的isupper()方法
May 19 Python
python删除指定类型(或非指定)的文件实例详解
Jul 06 Python
Python中集合的内建函数和内建方法学习教程
Aug 19 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
Feb 08 Python
python日期时间转为字符串或者格式化输出的实例
May 29 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
Python devel安装失败问题解决方案
Jun 09 Python
Pycharm无法打开双击没反应的问题及解决方案
Aug 17 Python
python爬虫泛滥的解决方法详解
Nov 25 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
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
Javascript中replace()小结
2015/09/30 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
2017/08/22 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
Python自定义类的数组排序实现代码
2016/08/28 Python
在django中,关于session的通用设置方法
2019/08/06 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
python 如何实现遗传算法
2020/09/22 Python
python实现图片转字符画
2021/02/19 Python
serialVersionUID具有什么样的特征
2014/02/20 面试题
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
财务助理岗位职责
2013/11/10 职场文书
致铅球运动员广播稿精选
2014/01/12 职场文书
村委会主任先进事迹
2014/01/15 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
购房意向书范本
2014/04/01 职场文书
环保倡议书范文
2014/05/12 职场文书
庆元旦活动总结
2014/07/09 职场文书
司机工作自我鉴定
2014/09/19 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
2014年校长工作总结
2014/12/11 职场文书
公积金具结保证书
2015/05/11 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫
MySQL中IO问题的深入分析与优化
2022/04/02 MySQL