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正则表达式去掉数字中的逗号(python正则匹配逗号)
Dec 25 Python
java直接调用python脚本的例子
Feb 16 Python
Python实现二叉搜索树
Feb 03 Python
使用python实现BLAST
Feb 12 Python
Python iter()函数用法实例分析
Mar 17 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
Jul 18 Python
Django url,从一个页面调到另个页面的方法
Aug 21 Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 Python
python实现读取类别频数数据画水平条形图案例
Apr 24 Python
Python2.x与3​​.x版本有哪些区别
Jul 09 Python
python 批量下载bilibili视频的gui程序
Nov 20 Python
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
May 31 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
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
PHP7 标准库修改
2021/03/09 PHP
js 图片轮播(5张图片)
2008/12/30 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
2015/03/02 Javascript
JavaScript编写简单的计算器
2015/11/25 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
Vue.js使用v-show和v-if的注意事项
2016/12/13 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
纯JS实现轮播图
2017/02/22 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
vue + typescript + 极验登录验证的实现方法
2019/06/27 Javascript
vue 判断两个时间插件结束时间必选大于开始时间的代码
2020/11/04 Javascript
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
Django实现单用户登录的方法示例
2019/03/28 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
Python如何定义有可选参数的元类
2020/07/31 Python
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
应用英语专业自荐信
2014/01/26 职场文书
校长新学期致辞
2015/07/30 职场文书
体育委员竞选稿
2015/11/21 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
python munch库的使用解析
2021/05/25 Python
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技