利用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 相关文章推荐
pycharm 使用心得(一)安装和首次使用
Jun 05 Python
简单理解Python中基于生成器的状态机
Apr 13 Python
在Python 3中实现类型检查器的简单方法
Jul 03 Python
Windows下安装python2和python3多版本教程
Mar 30 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
python文本数据相似度的度量
Mar 12 Python
Python向Excel中插入图片的简单实现方法
Apr 24 Python
Django forms组件的使用教程
Oct 08 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
aws 通过boto3 python脚本打pach的实现方法
May 10 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
Jul 01 Python
python实现图片转换成素描和漫画格式
Aug 19 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 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
php接口与接口引用的深入解析
2013/08/09 PHP
PHP Session机制简介及用法
2014/08/19 PHP
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
半角全角相互转换的js函数
2009/10/16 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
jquery利用json实现页面之间传值的实例解析
2016/12/12 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
JS实现密码框效果
2020/09/10 Javascript
python爬取m3u8连接的视频
2018/02/28 Python
python使用tornado实现登录和登出
2018/07/28 Python
Python 忽略warning的输出方法
2018/10/18 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
阿玛尼美妆加拿大官方商城:Giorgio Armani Beauty加拿大
2017/10/24 全球购物
如何执行一个shell程序
2012/11/23 面试题
战友聚会邀请函
2014/01/18 职场文书
庆元旦广播稿
2014/02/10 职场文书
买卖协议书范本
2014/04/21 职场文书
教师工作决心书
2015/02/04 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
浅谈JavaScript作用域
2021/12/06 Javascript