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

由于前文已经讨论过编码的事情了,所以这里不再研究编码,所有打开操作默认都是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中文件操作的基本方法

    在python中对一个文件进行操作,分为三大步:打开,操作,关闭 首先创建一个文件hello,里面内容为hello world 一.打开一个文件 #open('文件名或文件路径','操作模式',文件里 ...

  4. python怎么将字符串逆序_python中如何把一个字符串顺序逆序反转的几种方法?

    如 a='123456789' 反转成 a='987654321' 第一种方法:使用字符串切片 >>> a='123456789' >>> a = a[::-1] ...

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

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

  6. Python基础_第3章_Python中的循环结构

    Python基础_第3章_Python中的循环结构 文章目录 Python基础_第3章_Python中的循环结构 Python中的循环结构 一.回顾分支练习题 1.判断是否为一个合法三角形 2.求世界 ...

  7. Python基础_第5章_Python中的数据序列

    Python基础_第5章_Python中的数据序列 文章目录 Python基础_第5章_Python中的数据序列 Python中的数据序列 一.字典--Python中的==查询==神器 1.为什么需要 ...

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

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

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

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

最新文章

  1. Redis第二集:Linux下安装Redis和测试,包含命令代码和问题处理办法,超详细版
  2. fileupload的回调方法_jQuery File Upload文件上传插件使用详解
  3. http默认超时时间_Bof 是一个HTTP客户端,旨在尽可能方便用户使用
  4. shopnc前台登陆不进去解决方法
  5. jar包冲突常用的解决方法
  6. SAP云平台里Business Application Studio的角色分配截图
  7. Android实现动画Dialog
  8. 分享一个CSS3和jQuery实现的模糊显示效果 - 帮助你的访问用户更好的阅读内容
  9. tcp协议之三次握手,四次挥手
  10. 华为2288hv5服务器安装ESXI 6.7(三):安装ESXI(转)
  11. 少样本学习系列(四)【元学习与少样本深层理解】
  12. Python自动化开发从浅入深-进阶(socketServer)
  13. 一文读懂社交网络分析(附应用、前沿、学习资源)
  14. 程序设计大赛WBS图
  15. 小米5s 小米6 MIUI 系统 删除温控 破解限制
  16. Error. An error occurred while processing your request.
  17. android gallary demo
  18. 华为交换机用命令更改已有admin账户开启SSH
  19. 绝地求生手游电脑版连接服务器没有响应,绝地求生电脑版进去为什么连接失败 | 手游网游页游攻略大全...
  20. Android 监听横竖屏切换

热门文章

  1. c++面向对象高级编程 学习一 不带指针的类
  2. 跨平台2D/3D游戏开发框架libGDX发布1.2.0更新
  3. 解决:Unable to identify index name. XXXModel is not a Document. Make sure the document class is annota
  4. Mysql 无法插入中文,中文乱码解决
  5. FreeSql (二十六)贪婪加载 Include、IncludeMany、Dto、ToList
  6. 不作35岁的程序员?
  7. 总结Selenium WebDriver中一些鼠标和键盘事件的使用
  8. Repeater的使用
  9. 全国小学四则运算1.0
  10. pfsense 2.2RC版本应用