资讯专栏INFORMATION COLUMN

Python中文件的读写、写读和追加写读三种模式的特点

ninefive / 2223人阅读

摘要:这个原因涉及到一个叫的东西,俺滴老师没教,我也不好深说,等深入理解它后再和你们讲哈

本文主要讨论一下文件的三种可读可写模式的特点及互相之间的区别,以及能否实现修改文件的操作
由于前文已经讨论过编码的事情了,所以这里不再研究编码,所有打开操作默认都是utf-8编码(Linux系统下)

首先我们看r+(读写)

既然r+既能读又能写,那么能否实现在r+模式下进行文件的修改呢?答案是肯定的!,但是,有一点你需要注意,除非你知道在确切的位置修改确切的内容,否则往往不会得到你期望的结果。举个例子如下:
我们有这样一个文本“十步杀一人,千里不留行”
假设有这样一个需求,把“十步杀一人”改成“十步杀一个土匪”,初步设想是:用read(4)读取到汉字“一”,然后写入汉字“个土匪”:

with open("job", mode="r+") as f:
    print("先读取四个字符:",f.read(4))
    print("读取后的指针位置:",f.tell())
    f.write("个土匪")
    f.seek(0)
    print(f.read())
    输出为:
    先读取四个字符: 十步杀一
    读取后的指针位置: 12
    十步杀一人,千里不留行个土匪

从结果可以看到,使用read(4)指针确实移动到了指定的位置,但是写入的时候却没有按照设想,而是跑到了文件的末尾。这个原因涉及到一个叫“CHUNK”的东西,俺滴老师没教,我也不好深说,等深入理解它后再和你们讲哈

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42553.html

相关文章

  • python开发第三篇--文件基本操作和初识函数

    摘要:文件的基本操作编码不同编码之间的二进制是不能互相识别的。返回值有几种情况分别是没有返回值返回一个值返回多个值。函数定义计算的长度函数调用因为没有返回值,此时的为只写,后面不写其他内容,也会返回,但是遇到会终止整个函数。 文件的基本操作 编码 1.不同编码之间的二进制是不能互相识别的。2.对于文件的存储,及传输 不能是unicode的编码。 bytes:内部编码格式(非unicode) ...

    魏明 评论0 收藏0
  • 文件操作

    摘要:二文件操作操作文件时,一般需要经历如下步骤打开文件文件句柄文件路径模式注中打开文件有两种方式,即和,本质上前者在内部会调用后者来进行文件操作,推荐使用。 一 介绍 计算机系统分为:计算机硬件,操作系统,应用程序三部分。 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序是无法直接操作硬件的,这就用...

    546669204 评论0 收藏0
  • Python基础知识之文件读取操作

    摘要:如果该文件已存在,文件的初始指针在文件的结尾。文件中只有一句话十步杀一人,千里不留行。关闭文件如果用来打开文件的话就不用管关闭文件的操作了,因为已经帮你完成了这一步,否则必须在处理文件之后加上关闭文件的操作 读取文件的操作步骤 有一道脑筋急转弯,问把大象装进冰箱的步骤,答案很简单,打开冰箱、把大象推进去、关闭冰箱。这就是一个处理问题的思路,我们对文件的操作和这个一样,第一步:打开文件;...

    zeyu 评论0 收藏0
  • Python全栈之路系列之文件操作

    摘要:可以对文件进行查看创建等功能,可以对文件内容进行添加修改删除,且所使用到的函数在为,在同时支持和,但是在系列移除了函数。在及以后,又支持同时对多个文件的上下文进行管理,即原文链接 Python可以对文件进行查看、创建等功能,可以对文件内容进行添加、修改、删除,且所使用到的函数在Python3.5.x为open,在Python2.7.x同时支持file和open,但是在3.5.x系列移除...

    Drummor 评论0 收藏0
  • ❤️❤️新生代农民工爆肝8万字,整理Python编程从入门到实践(建议收藏)已码:6万字❤️❤️

    人生苦短,我用Python 开发环境搭建安装 Python验证是否安装成功安装Pycharm配置pycharm 编码规范基本语法规则保留字单行注释多行注释行与缩进多行语句数据类型空行等待用户输入print输出 运算符算术运算符逻辑运算符成员运算符身份运算符运算符优先级 字符串访问字符串中的值字符串更新合并连接字符串删除空白startswith()方法endswith()方法字符串格式化...

    wthee 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<