python读写文件write和flush的实现方式


Posted in Python onFebruary 21, 2020

打开文件用open,该函数创建一个文件对象,这将用来调用与之关联的其他支持方式。

file object = open(file_name [, access_mode][, buffering])

下面是参数的详细信息:

file_name: file_name参数是一个字符串值,包含您要访问的文件的名称。

access_mode: access_mode决定了文件必须被打开,即,读,写,追加等的可能值是下表中给定的一个完整的列表的模式。这是可选参数,默认文件存取方式为read (r)。

buffering: 如果缓冲值被设置为0时,没有缓冲将发生。如果该缓冲值是1,行缓冲会在访问一个文件来执行。如果指定的缓冲值为大于1的整数,则缓冲作用将与所指示的缓冲区的大小进行。如果为负,则缓冲区的大小是系统默认(默认行为)。

这里是打开一个文件的​​不同模式的列表:

模式 描述
r 打开一个文件为只读。文件指针置于该文件的开头。这是默认模式。
rb 打开一个文件只能以二进制格式读取。文件指针置于该文件的开头。这是默认模式。
r+ 打开用于读取和写入文件。文件指针将会在文件的开头。
rb+ 打开用于读取和写入二进制格式的文件。文件指针将会在文件的开头。
w 打开一个文件只写。覆盖该文件,如果该文件存在。如果该文件不存在,则创建用于写入一个新的文件。
wb 打开一个文件只能以二进制格式写入。覆盖该文件,如果该文件存在。如果该文件不存在,则创建用于写入一个新的文件。
w+ 打开用于写入和读取的文件。覆盖现有的文件,如果文件存在。如果该文件不存在,则创建读取和写入新的文件。
wb+ 打开用于写入和读取的二进制格式的文件。覆盖现有的文件,如果文件存在。如果该文件不存在,则创建读取和写入新的文件。
a 将打开追加文件。文件指针是在文件的结尾。也就是说,该文件是在附加模式。如果该文件不存在,它创造了写入一个新的文件。
ab 将打开追加的二进制格式的文件。文件指针在该文件的结束。也就是说,该文件为追加模式。如果该文件不存在,它创建并写入一个新的文件。
a+ 打开为追加和读取文件。文件指针在该文件的结束。该文件将为追加模式。如果该文件不存在,它创建并读取和写入的新文件。
ab+ 打开两个追加和读取的二进制格式的文件。文件指针在该文件的结束。该文件将在追加模式。如果该文件不存在,它创建并读取和写入的新文件。

关闭文件用close:

一个文件对象的close()方法刷新未写入的信息,并关闭该文件的对象,在这之后没有数据内容可以执行写入。

写入文件用write:

write()方法写入字符串到任何一个打开的文件。要注意的是Python字符串可以具有二进制数据,而不仅仅是文字。

读取文件用read:

read()方法读取一个打开的文件的字符串。要注意的是Python字符串可以具有二进制数据,而不仅仅是文本。

需要注意的是:由于缓冲,字符串可能实际上没有出现在该文件中,直到调用flush()或close()方法被调用.

一般的文件流操作都包含缓冲机制,write方法并不直接将数据写入文件,而是先写入内存中特定的缓冲区。

flush方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区。

正常情况下缓冲区满时,操作系统会自动将缓冲数据写入到文件中。

至于close方法,原理是内部先调用flush方法来刷新缓冲区,再执行关闭操作,这样即使缓冲区数据未满也能保证数据的完整性。

如果进程意外退出或正常退出时而未执行文件的close方法,缓冲区中的内容将会丢失。

以上这篇python读写文件write和flush的实现方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用内置json模块解析json格式数据的方法
Jul 20 Python
Django 生成登陆验证码代码分享
Dec 12 Python
python实现用户答题功能
Jan 17 Python
Python实现Pig Latin小游戏实例代码
Feb 02 Python
Python实现string字符串连接的方法总结【8种方式】
Jul 06 Python
对python内置map和six.moves.map的区别详解
Dec 19 Python
Python列表切片操作实例总结
Feb 19 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
Python爬虫requests库多种用法实例
May 28 Python
Django通过json格式收集主机信息
May 29 Python
Python实现微信表情包炸群功能
Jan 28 Python
Python中json.load()和json.loads()有哪些区别
Jun 07 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
Feb 21 #Python
浅谈python中频繁的print到底能浪费多长时间
Feb 21 #Python
python使用Geany编辑器配置方法
Feb 21 #Python
Pycharm 安装 idea VIM插件的图文教程详解
Feb 21 #Python
解决Python logging模块无法正常输出日志的问题
Feb 21 #Python
Pycharm和Idea支持的vim插件的方法
Feb 21 #Python
在python中logger setlevel没有生效的解决
Feb 21 #Python
You might like
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
PHP4引用文件语句的对比
2006/10/09 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
iframe窗口高度自适应的实现方法
2014/01/08 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
微信小程序 开发工具快捷键整理
2016/10/31 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
JavaScript设计模式之代理模式详解
2017/06/09 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
Python实现的二维码生成小软件
2014/07/11 Python
Python多线程下载文件的方法
2015/07/10 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
分享30个新鲜的CSS3打造的精美绚丽效果(附演示下载)
2012/12/28 HTML / CSS
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
美国流行背包品牌:JanSport(杰斯伯)
2018/03/02 全球购物
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
厨房工作人员岗位职责
2013/11/15 职场文书
春节请假条
2014/04/11 职场文书
产品售后服务承诺书
2014/05/21 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
拉贝日记观后感
2015/06/05 职场文书
雷锋的观后感
2015/06/10 职场文书
地心历险记观后感
2015/06/15 职场文书
2016年过年放假安排通知
2015/08/18 职场文书