1 问题
在文件读取的时候,如果多次使用读取模式’w’,则会出现以前的内容消失不见的情况。我们既要保留以前的内容,又要增加内容该如何做?
2 方法
查询资料;
通过查询资料可知,’w’的作用是写入,但是会覆盖原本的内容,而’a’的作用是追加,不会覆盖原本的内容,只能在文章的结尾加入内容。可以改变模式换成’a’,从而实现内容的增添,除此之外还可以用’a+’的方式来进行追加,该方式是既可读又可写,也不会实现内容的覆盖。
错误示例;
在进行内容的追加时,我们采取了两次重新编写’w’模式,但结果就是内容被覆盖。如“代码清单1”所示
代码清单1
得到的结果是最后的’submission’,由此可以得知第一个内容被覆盖。with open('shiyan.txt','w',encoding='UTF-8') as f:
f.write('hello world')
with open('shiyan.txt','w',encoding='UTF-8') as f:
f.write('submission')解决方法实操
由以上的内容可以帮助我们解决这个问题,通过实践可以证明我们提出的方法是有效的,能够解决开头提出的问题。如“代码清单2”所示
代码清单2
with open('shiyan.txt','w',encoding='UTF-8') as f: f.write('hello world') with open('shiyan.txt','a',encoding='UTF-8') as f: f.write('submission') |
由“代码清单2”所得出的结果为” hello worldsubmission”,实现了内容的追加。
3 结语
针对文件内容被覆盖的问题,提出将模式’w’改成’a’或者’a+’的方法,通过实验,证明该方法是有效的。本文的方法是内容的追加,但是这是在原文的基础上直接追加在文章的结尾处,例如“代码清单2”的结果为” hello worldsubmission”,如果想要得到” hello world\nsubmission”,则需要进行换行操作,这是本文没有考虑到的内容,未来话可以继续探讨一下。