关于读写模式组合问题

关于读写模式组合问题

file_name4 = "read_and_write.txt"
with open(file_name4, 'a+', encoding="utf-8") as f:
   read_rest = f.read()
   # 如果不存在1,则写入数据aaa
   # 如果存在,则写入数据bbb
   if '1' not in read_rest:
       f.write('aaa')
   else:
       f.write('bbb')
   f.write('\n')

老师,我把r+换成了a+或w+,结果每次运行,read_rest变量值都为空,难道a+模式或w+模式只能写不能读?请老师把各种模式组合功能作用作一详解。。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕美 2019-09-15 09:50:05

同学,你好:

w+:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 

a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

w+会将原有内容删除,a+文件指针会在结尾处,因此在写入前读取的时候结果为空;

文件的其他打开模式:

r:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。    

r+:打开一个文件用于读写。文件指针将会放在文件的开头。    

w:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。    

a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。    

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 请问a和a+有什么区别?
    2020-01-01 12:41:49
  • 同学,你好。以a模式打开的文件只能以追加的方式写入,不能读;a+打开的文件可读可写,指针处于文件未尾,需要使用seek(0)将指针调整到开头位置才可以读。祝学习愉快~~~~
    2020-01-02 09:37:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师