利用Python在一个文件的头部插入数据的实例


Posted in Python onMay 02, 2018

在一个文件的末尾追加数据是很常用的。在使用过程中应该都比较熟悉不会出现什么错误。但是往一个文件头部插入数据可能或多或少会碰到一些问题。

看似正确的错误代码

很多代码看似正确,但是其实都是错的。一起来看下这些代码

1、看似正确的错误代码1

with open(path, "r+") as f:
   f.seek(0)
   f.write(data)

确实是从头写了,而且有些原有数据确实在,但是数据有问题。。。。

因为”r+”方式写文件操作没有插入的语义,只有写文件的含义,原来位置如果有数据,不会后移的,是覆盖掉了。。。。所以,你可能会看到一些老的数据。不仔细辨别可能就天真地以为成功了。。。

2、看似正确的错误代码2

with open(path, "w+") as f:
   old = f.read()
   f.seek(0)
   f.write(data)
   f.write(old)

你读取到的数据永远为空。。。。

因为”w+”的含义就是截取长度为0然后写入文件。

3、看似正确的错误代码3

with open(path, "a+") as f:
   old = f.read()
   #f.truncate(0)      #取消掉注释成正确代码
   f.seek(0)
   f.write(data)

写入的数据永远出现在文件末尾。。。。。

要打破魔咒的话要先将文件截断成0字节。。。。

snack:想要”a+”的效果变”r+”,在读之前先seek(0),在写之前要truncate一下,确保要写入的位置是文件的末尾。

正确的代码

with open(path, "r+") as f:
   old = f.read()
   f.seek(0)
   f.write(data)
   f.write(old)

原理思路:读出原有文件内容,移动索引到开始,写入新的数据,然后写入旧的数据。

以上这篇利用Python在一个文件的头部插入数据的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的类学习笔记
Sep 23 Python
跟老齐学Python之print详解
Sep 28 Python
在Python中用get()方法获取字典键值的教程
May 21 Python
Python爬取十篇新闻统计TF-IDF
Jan 03 Python
浅谈Django学习migrate和makemigrations的差别
Jan 18 Python
基于python log取对数详解
Jun 08 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
Mar 30 Python
pytorch中的model=model.to(device)使用说明
May 24 Python
详解在OpenCV中如何使用图像像素
Mar 03 Python
Python实现归一化算法详情
Mar 18 Python
python在文本开头插入一行的实例
May 02 #Python
Python实现的根据文件名查找数据文件功能示例
May 02 #Python
对Python3中的print函数以及与python2的对比分析
May 02 #Python
python print 按逗号或空格分隔的方法
May 02 #Python
Django 跨域请求处理的示例代码
May 02 #Python
python 按照固定长度分割字符串的方法小结
Apr 30 #Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
Apr 30 #Python
You might like
分享8个最佳的代码片段在线测试网站
2013/06/29 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
轻松实现php文件上传功能
2017/02/17 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
PHP实现计算器小功能
2020/08/28 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
在vue中使用jsx语法的使用方法
2019/09/30 Javascript
Python 2与Python 3版本和编码的对比
2017/02/14 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
python安装pywin32clipboard的操作方法
2019/01/24 Python
python实现将一维列表转换为多维列表(numpy+reshape)
2019/11/29 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
工商管理应届生求职信
2013/10/07 职场文书
个人求职信范例
2014/01/29 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
老龄工作先进事迹
2014/08/15 职场文书
慈善捐赠倡议书
2014/08/30 职场文书
2014年个人委托书范本
2014/10/13 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
学习与创新自我评价
2015/03/09 职场文书
赡养老人协议书范本
2015/08/06 职场文书
聘用合同范本
2015/09/21 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书