利用Python在一个文件的头部插入数据的实例

作者:WarmSword 时间:2023-02-06 13:04:33 

在一个文件的末尾追加数据是很常用的。在使用过程中应该都比较熟悉不会出现什么错误。但是往一个文件头部插入数据可能或多或少会碰到一些问题。

看似正确的错误代码

很多代码看似正确,但是其实都是错的。一起来看下这些代码

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)

原理思路:读出原有文件内容,移动索引到开始,写入新的数据,然后写入旧的数据。

来源:https://blog.csdn.net/junbujianwpl/article/details/73194846

标签:Python,文件,头部,数据
0
投稿

猜你喜欢

  • 盖座漂亮的“楼”–浅谈网页设计中的构图

    2010-09-10 12:44:00
  • python+rsync精确同步指定格式文件

    2023-09-18 06:51:26
  • JSP分页显示的实例代码

    2023-06-26 06:06:37
  • ThinkPHP学习笔记(一)ThinkPHP部署

    2023-09-09 12:42:16
  • Go语言通过WaitGroup实现控制并发的示例详解

    2023-06-29 01:04:27
  • python代码实现猜拳小游戏

    2023-10-16 19:00:46
  • 用ASP实现就MP3曲目信息的操作全攻略

    2008-05-28 12:42:00
  • django foreignkey外键使用的例子 相当于left join

    2021-04-17 15:52:33
  • 2009淘宝网动画节日LOGO第一季

    2009-05-18 19:11:00
  • CSS框架的相关汇总(CSS Frameworks)

    2008-04-02 12:00:00
  • 10个很实用的js小脚本代码

    2007-10-17 21:08:00
  • WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法

    2023-07-01 11:01:00
  • 一文带你熟悉Go语言中函数的使用

    2023-07-13 08:22:23
  • Django模型验证器介绍与源码分析

    2023-10-19 13:49:53
  • IE在DOM操作有表单控件时的bug

    2008-08-21 13:00:00
  • 淘宝网获亚洲最佳在线客户体验大奖

    2009-03-31 12:55:00
  • ASP编程如何执行存储过程?

    2010-03-17 20:56:00
  • 简单的ASP生成HTML并分页程序

    2009-07-20 12:32:00
  • shtml网页SSI使用详解

    2008-02-20 19:13:00
  • 中国传统色彩名录

    2007-11-29 18:36:00
  • asp之家 网络编程 m.aspxhome.com