时间:2021-05-22
其实r 是只读,只能读不能写,这是很明确的,但是r+是可读写,变成r+后还没太明白到底加了什么,还是照样写不了,有没有这样的体验呢,如下代码,只读时
f = open("test.txt", 'r', encoding="utf-8") # 文件句柄f.write("we are heros\n")data = f.read()print(data, type(data))f.close()这样的话报错是明显的:io.UnsupportedOperation: not writable,不可写应都能理解,但是变成r+呢
f = open("test.txt", 'r+', encoding="utf-8") # 文件句柄f.write("we are heros\n")data = f.read()print(data, type(data))f.close()你试过会发现,什么也没打印出来,同时注意!!!也没有报错。到底是什么意思呢?
其实是由于读写机制的问题,当一个文件被读或者写一次后,文件中类指针的东西指向的是整个文件的末尾,再次读时从末尾开始读的话肯定是什么都
读不到了,所以会出现这样的问题,和连续f.read()两次的话,第二次什么都不会读到的原因是相同的。那如何写完了接着读呢,见代码
f = open("test.txt", 'r+', encoding="utf-8") # 文件句柄 f.write("we are heros\n") f.seek(0) data = f.read() print(data, type(data)) f.close()加上f.seek(0)使得类指针的东西回到文件的开头然后从头开始读即可。配合f.tell()使用,英文及字符返回的是那个类指针的位置(也就是字符个数),但是中文的话是字符 个数*3,具体原因还得请大侠给讲讲。
r+与w+啥区别呢,不能简单的理解为读写都可,细节之处略有不同!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python文件打开方式。分享给大家供大家参考,具体如下:第一步排除文件打开方式错误:r只读,r+读写,不创建w新建只写,w+新建读写,二者都会将
打开文件操作文件1打开文件时,需要指定文件路径和打开方式打开方式:r:只读w:只写a:追加“+”表示可以同时读写某个文件r+:读写w+:写读a+:同aU"表示在
一、建立文件,保存数据1.使用python中内置的open函数打开txt文件#mode模式#w只能操作写入r只能读取a向文件追加#w+可读可写r+可读可写a+可
Python读写文件模式1、r打开只读文件,该文件必须存在。2、r+打开可读写的文件,该文件必须存在。3、w打开只写文件,若文件存在则文件长度清为0,即该文件内
Python文件读写的几种模式:r,rb,w,wb那么在读写文件时,有无b标识的的主要区别在哪里呢?文件使用方式标识'r':默认值,表示从文件读取数据'w':表