利用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获取linux主机ip的简单实现方法
Apr 18 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
Oct 13 Python
Python设计模式之中介模式简单示例
Jan 09 Python
python实现画一颗树和一片森林
Jun 25 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
Jul 04 Python
python读出当前时间精度到秒的代码
Jul 05 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 Python
Django框架models使用group by详解
Mar 11 Python
keras自定义回调函数查看训练的loss和accuracy方式
May 23 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 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
PHP实现自动登入google play下载app report的方法
2014/09/23 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
JavaScript中数据结构与算法(三):链表
2015/06/19 Javascript
JavaScript中利用各种循环进行遍历的方式总结
2015/11/10 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
12 款 JS 代码测试必备工具(翻译)
2016/12/13 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
js canvas实现放大镜查看图片功能
2017/06/08 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
基于JS实现计算24点算法代码实例解析
2020/07/23 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
Python简单操作sqlite3的方法示例
2017/03/22 Python
Python中定时任务框架APScheduler的快速入门指南
2017/07/06 Python
通过Python实现自动填写调查问卷
2017/09/06 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
python K近邻算法的kd树实现
2018/09/06 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
python之array赋值技巧分享
2019/11/28 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
JSP&Servlet技术面试题
2015/05/21 面试题
地理科学专业毕业生求职信
2013/10/15 职场文书
车间操作工岗位职责
2013/12/19 职场文书
给实习单位的感谢信
2014/02/01 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python