利用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网络爬虫采集联想词示例
Feb 11 Python
python uuid模块使用实例
Apr 08 Python
详细讲解Python中的文件I/O操作
May 24 Python
Python的Django框架中的数据过滤功能
Jul 17 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
Mar 20 Python
Python pygorithm模块用法示例【常见算法测试】
Aug 16 Python
python实现决策树分类
Aug 30 Python
python得到电脑的开机时间方法
Oct 15 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
selenium处理元素定位点击无效问题
Jun 12 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 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
模仿OSO的论坛(四)
2006/10/09 PHP
PHP与javascript的两种交互方式
2006/10/09 PHP
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
php 字符转义 注意事项
2009/05/27 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
2009/08/17 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
前端轻量级MVC框架CanJS详解
2014/09/26 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
[02:43]DOTA2英雄基础教程 圣堂刺客
2013/12/09 DOTA
python命令行参数sys.argv使用示例
2014/01/28 Python
简单介绍Python中的readline()方法的使用
2015/05/24 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
matplotlib绘制动画代码示例
2018/01/02 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
django 环境变量配置过程详解
2019/08/06 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
主管会计岗位责任制
2014/02/10 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
租房协议书怎么写
2014/04/10 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python