python读写文件模式的区别
文章更新于:2024-05-21
参考资料:字符编码,占用空间大小
读写模式
注:
如果使用 r+
,写完未关闭文件直接读,只能读取到上一步写位置后面的内容(而后面没有内容,所以读的内容为空)。
如果使用 w+
,会先清空文件,即使写入数据直接读得到的内容也为空(亦是因为文件指针在文件尾,后面没有数据)。
上述两种情况皆是由于文件指针不在文件头造成的,
使用 file.seek(0)
将指针移到文件头即可。
上面的模式默认隐含 t
(文本模式)参数,即下表第一行等效于第二行,
若想使用二进制模式则显式添加b参数(第三行):
模式字符的位置可随意摆放:r+t
= rt+
= t+r
= +rt
= +tr
= …
文件指针定位
1、r
模式下,文件指针位于文件头,读完位于文件尾。想要再次读取,需要将指针移动到指定位置或直接移动到文件头。
2、w+
模式下,文件指针随着写入一直往后移动,始终位于文件内容末尾,想要读取之前写入的内容,也需要将指针往前移动。
3、rt
模式下,read(n)
指定的是字符个数,write()
返回的也是字符个数,且不同编码下,字符对应的字节数不同。
4、而 rb
则是字节个数。
读取字符数示例:
读取字节数示例:
那有的同学就有疑问了,UTF-8
字符集一个汉字用了3个字节,如果我读取4个字节,也就是读取一个完整汉字之后,再读取下一个汉字的其中一个字节,
再去编码会怎么样?答案是会报错。
有了计划记得推动,不要原地踏步。
标签:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)