利用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爬虫之神器正则表达式
Nov 06 Python
Python set集合类型操作总结
Nov 07 Python
Python编程判断一个正整数是否为素数的方法
Apr 14 Python
python字符串与url编码的转换实例
May 10 Python
python读取TXT每行,并存到LIST中的方法
Oct 26 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
对python中的float除法和整除法的实例详解
Jul 20 Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 Python
Pandas-Cookbook 时间戳处理方式
Dec 07 Python
Tensorflow 实现释放内存
Feb 03 Python
Python猫眼电影最近上映的电影票房信息
Sep 18 Python
Django使用channels + websocket打造在线聊天室
May 20 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
如何过滤高亮显示非法字符
2006/10/09 PHP
CURL状态码列表(详细)
2013/06/27 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
JS实现图片平面旋转的方法
2016/03/01 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
微信小程序  modal详解及实例代码
2016/11/09 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
Bootstrap源码解读网格系统(3)
2016/12/22 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
详解Python装饰器由浅入深
2016/12/09 Python
一个基于flask的web应用诞生(1)
2017/04/11 Python
python生成九宫格图片
2018/11/19 Python
Python docx库用法示例分析
2019/02/16 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
Python 中@property的用法详解
2020/01/15 Python
小学校园文化建设汇报材料
2014/08/19 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
2014年班干部工作总结
2014/11/25 职场文书
2015年资料员工作总结
2015/04/25 职场文书
宣传稿格式范文
2015/07/23 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
MySQL悲观锁与乐观锁的实现方案
2021/11/02 MySQL
Python中如何处理常见报错
2022/01/18 Python