首页 > 编程语言 >【python】使用r+模式先读后写和先写后读的区别

【python】使用r+模式先读后写和先写后读的区别

时间:2024-04-18 11:23:00浏览次数:32  
标签:先读 python after write 后写 从文件 print txt

最近学习python时,发现r+(读写)模式先读和先写,写入的位置不一致,经过测试发现:

1、先写后读,写从文件开头开始写(覆盖原文),读从写入末尾开始读;

2、先读后写,读从文件开头开始读,写从文件末尾开始写。

点击查看代码
'''
test.txt
#####随便写点啥######
'''

# 先写后读
with open('test.txt', 'r+', encoding='utf8') as f:
	f.write('write')
	print('after write', f.tell())
	print(f.readline())
	print('after read', f.tell())

'''
运行结果
after write 5
随便写点啥######
after read 28

test.txt
write随便写点啥######
'''

# 先读后写
with open('test.txt', 'r+', encoding='utf8') as f:
	print(f.readline())
	print('after read', f.tell())
	f.write('write')
	print('after write', f.tell())

'''
运行结果
#####随便写点啥######
after read 26
after write 31

test.txt
#####随便写点啥######write
'''

一开始不是很理解为什么会有区别,后来想起来r+应该是 先读后写 ,也就能解释通了,设计就是先从文件开头读,再从文件末尾写,为了不让写入覆盖原文件,但是反其道行之就不会从文件末尾写了(一开始我以为也会),可能设计时没想到有人会用r+先写,或者就是故意的,让你不按套路出牌XD。
ps:python版本3.9.4

标签:先读,python,after,write,后写,从文件,print,txt
From: https://www.cnblogs.com/BlowerDGP/p/18143104

相关文章

  • 通过构建游戏学习-Python(四)
    通过构建游戏学习Python(四)原文:zh.annas-archive.org/md5/8d68d722c94aedcc91006ddf3f78c65a译者:飞龙协议:CCBY-NC-SA4.0第十一章:使用Pygame超越Turtle-使用Pygame制作贪吃蛇游戏UIPython游戏开发在某种程度上与pygame模块相关。到目前为止,我们已经学习了关于Py......
  • 华为云CodeArts IDE For Python 快速使用指南
    本文分享自华为云社区《华为云CodeArtsIDEForPython快速使用指南》,作者:为云PaaS服务小智。CodeArtsIDE带有Python扩展,为Python语言提供了广泛的支持。Python扩展可以利用CodeArtsIDE的代码补全、验证、调试和单元测试等特性,与多种Python解释器协同工作,轻松切换包......
  • 通过构建游戏学习-Python(五)
    通过构建游戏学习Python(五)原文:zh.annas-archive.org/md5/8d68d722c94aedcc91006ddf3f78c65a译者:飞龙协议:CCBY-NC-SA4.0第十四章:了解PyOpenGL几何形状和图形在游戏开发中起着至关重要的作用。当涉及到先进的图形技术的开发时,我们往往忽视它们的重要性。然而,许多流行的游......
  • 精通-Python-系统管理脚本编程(一)
    精通Python系统管理脚本编程(一)原文:zh.annas-archive.org/md5/c33d6613eafa4d86b92059a00f7aa16f译者:飞龙协议:CCBY-NC-SA4.0前言Python已经发展并扩展了其功能,涵盖了几乎所有可能的IT操作。本书将帮助你利用Python的最新功能,编写有效的脚本,并创建用于管理环境的命......
  • 精通-Python-系统管理脚本编程(四)
    精通Python系统管理脚本编程(四)原文:zh.annas-archive.org/md5/c33d6613eafa4d86b92059a00f7aa16f译者:飞龙协议:CCBY-NC-SA4.0第十六章:网络爬虫-从网站提取有用的数据在本章中,您将学习有关网络爬虫的知识。您还将学习Python中的beautifulsoup库,该库用于从网站提取信息。......
  • 现代-Python-秘籍(六)
    现代Python秘籍(六)原文:zh.annas-archive.org/md5/185a6e8218e2ea258a432841b73d4359译者:飞龙协议:CCBY-NC-SA4.0第九章:输入/输出、物理格式和逻辑布局在本章中,我们将看以下配方:使用pathlib处理文件名使用上下文管理器读写文件替换文件并保留先前版本使用C......
  • Python-GUI-编程(五)
    PythonGUI编程(五)原文:zh.annas-archive.org/md5/9d5f7126bd532a80dd6a9dce44175aaa译者:飞龙协议:CCBY-NC-SA4.0第十二章:使用Canvas小部件可视化数据在数据库中记录了数月的实验数据后,现在是开始可视化和解释数据的过程。你的同事分析师们询问程序本身是否可以创建图形......
  • Python-GUI-编程(一)
    PythonGUI编程(一)原文:zh.annas-archive.org/md5/9d5f7126bd532a80dd6a9dce44175aaa译者:飞龙协议:CCBY-NC-SA4.0前言响应式图形用户界面(GUI)帮助您与应用程序交互,提高用户体验,并增强应用程序的效率。使用Python,您将可以访问精心设计的GUI框架,可以用来构建与众不同的交互......
  • 现代-Python-秘籍(八)
    现代Python秘籍(八)原文:zh.annas-archive.org/md5/185a6e8218e2ea258a432841b73d4359译者:飞龙协议:CCBY-NC-SA4.0第十一章:测试在本章中,我们将看以下配方:使用文档字符串进行测试测试引发异常的函数处理常见的doctest问题创建单独的测试模块和包结合unitt......
  • 现代-Python-秘籍(二)
    现代Python秘籍(二)原文:zh.annas-archive.org/md5/185a6e8218e2ea258a432841b73d4359译者:飞龙协议:CCBY-NC-SA4.0第二章:语句和语法在本章中,我们将查看以下配方:编写Python脚本和模块文件编写长行代码包括描述和文档在文档字符串中更好的RST标记设计复杂......