本文主要讨论一下文件的三种可读可写模式的特点及互相之间的区别,以及能否实现修改文件的操作

由于前文已经讨论过编码的事情了,所以这里不再研究编码,所有打开操作默认都是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”的东西,俺滴老师没教,我也不好深说,等深入理解它后再和你们讲哈

python对文件的追加写模式_Python中文件的读写、写读和追加写读三种模式的特点...相关推荐

  1. Android NFC读卡以及NFC的三种模式

    第一步添加权限: <uses-permission android:name="android.permission.NFC" /> <uses-permissi ...

  2. python读写文件的文本模式_Python中文件的读写、写读和追加写读三种模式的特点...

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

  3. python文件的读取与写入_python中文件的读取与写入以及os模块

    1.文件读取的三部曲:打开 ---> 操作 ----> 关闭 r(默认参数): -只能读,不能写 -读取文件不存在 会报错 FileNotFoundError: [Errno 2] No ...

  4. git reset 的三种模式的使用场景

    一.前提 参考:建议先阅读:Git Reset 三种模式 这篇文章只是我的的一个笔记 二.三种模式 git reset --soft git reset --mixed git reset --har ...

  5. [ROS2] map_server加载地图文件的三种模式

    map的数据类型 map话题的类型是nav_msgs::msg::OccupancyGrid.使用下面的命令可以查询该类型的数据结构. ros2 interface show nav_msgs/msg ...

  6. Linux 文件编辑的三种模式(新手必看)

    Linux 文件编辑的三种模式(新手必看) 1. linux 文件编辑 1.2 VI 三种模式 实例演示: 1. linux 文件编辑 1.1 VI 和 VIM ①vi 编辑器是所有 Unix 及 L ...

  7. Linux编辑文件时三种模式指令

    Linux在编辑文件时需要进行三种模式的切换,以下分别说明了每个模式常用的命令操作: 一.一般模式:       以vi\vim打开一个文件就直接进入一般模式了(这是默认的模式).在这个模式中, 你可 ...

  8. redis 高可用(持久化、主从复制、哨兵、集群)以及集群的三种模式

    Redis高可用定义 在web服务器中,高可用代表服务器可以正常访问的时间,一般使用百分比来衡量多长时间内可以提供正常服务 但是在redis中,高可用的定义还要更广泛一点,除了提供正常的服务(如主从分 ...

  9. Redis集群部署的三种模式

    一.Redis简介 Redis 是一款完全开源免费.遵守BSD协议的高性能(NOSQL)的key-value数据库.它使用ANSI C语言编写,支持网络.可基于内存亦可持久化的日志型.Key-Valu ...

最新文章

  1. 《中国人工智能学会通讯》——3.15 社交媒体中的谣言识别研究及其发展趋势...
  2. iOS如何使用三方字体
  3. 从源码分析DEARGUI之文件选择
  4. java输出五行菱形_Java打印一个菱形
  5. Win10系列:JavaScript图形
  6. 天然富硒科技成果转化-李喜贵:成立联合体谋定农业大健康
  7. java nanotime 重复_Java中System.nanoTime方法能作为一个唯一字符串来使用吗
  8. php codesniffer 代码规范,规范三:PHP_CodeSniffer 辅佐代码规范
  9. QToolButton设置图片填充满_韩国高人气图片素材大合集!每张图,都是桌面壁纸,逼格满满...
  10. Node.js 使用 JWT 进行用户认证
  11. windows server 2008 大量拷贝后释放内存
  12. 数据结构视频教程 -《小甲鱼全套教程之C C++数据结构系列教程》
  13. 华硕Y450拆机清灰、拆下光驱助散热、卸载无用软件
  14. python终止运行无反应_终止运行Python应用程序(Terminate Running Python Apps)
  15. [附源码]java毕业设计景区门票系统
  16. android 9指纹认证_Android指纹认证教程
  17. HTML中如何使用JavaScript创建链接?
  18. top与with ties用法
  19. 自然语言处理是什么,我们为什么需要处理自然语言?
  20. 请为横线处选择合适的程序使得程序的运行结果是123 ( )

热门文章

  1. 转载]复眼,Adobe光场相机(
  2. 【vn.py学习笔记(六)】vn.py constant源码阅读、委托生命周期
  3. Android 天气APP(十七)热门城市 - 国内城市
  4. c++进制转化(超级简单实现)
  5. PHP常用的输出语句
  6. php取整函数和随机数函数
  7. 二级建造师学python有用_你需要了解的可以使用Python构建的10个便捷工具
  8. 【数据网格架构】数据网格架构详解
  9. UG安装中可能遇到的问题
  10. JavaSE基础加强、集合案例 斗地主