利用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中映射类型的内建函数和工厂函数
Aug 19 Python
浅析python中的分片与截断序列
Aug 09 Python
Python编程实现的简单神经网络算法示例
Jan 26 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
Python中反射和描述器总结
Sep 23 Python
pandas中apply和transform方法的性能比较及区别介绍
Oct 30 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
Python 用三行代码提取PDF表格数据
Oct 13 Python
jenkins配置python脚本定时任务过程图解
Oct 29 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
python爬虫筛选工作实例讲解
Nov 23 Python
Python模拟键盘输入自动登录TGP
Nov 27 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+mysql留言本源码
2009/11/11 PHP
PHP随机生成随机个数的字母组合示例
2014/01/14 PHP
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
2015/08/18 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
原生js实现回复评论功能
2017/01/18 Javascript
JS实现页面打印功能
2017/03/16 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
微信小程序下拉菜单效果的实例代码
2019/05/14 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
python爬虫headers设置后无效的解决方法
2017/10/21 Python
python 类对象和实例对象动态添加方法(分享)
2017/12/31 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
瑜伽国际:Yoga International
2018/04/18 全球购物
德国在线香料制造商:Gewürzland
2020/03/10 全球购物
应届生求职信写作技巧
2013/10/24 职场文书
咖啡厅创业计划书范本
2014/01/22 职场文书
网上开店必备创业计划书
2014/01/26 职场文书
教学质量评估实施方案
2014/03/17 职场文书
2014年教师节红领巾广播稿
2014/09/10 职场文书
大学本科生职业生涯规划书范文
2014/09/14 职场文书
旷课检讨书500字
2014/10/14 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
2014年销售工作总结
2014/12/01 职场文书
项目安全员岗位职责
2015/02/15 职场文书
工会文体活动总结
2015/05/07 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
十个Python自动化常用操作,即拿即用
2021/05/10 Python