那么如果不要清空文件再写入该如何做呢?使用r 模式不会先清空,但是会替换掉原先的文件,如下面的例子:hello boy! 被替换成hello aay!>>> f2 = open(‘/tmp/test.txt’,’r ‘)>>> f2.write(‘\nhello aa!’)>>> f2.close()[root@node1 python]# cat /tmp/test.txthello aay!如何实现不替换?>>> f2 = open(‘/tmp/test.txt’,’r ‘)>>> f2.read()‘hello girl!’>>> f2.write(‘\nhello boy!’)>>> f2.close()[root@node1 python]# cat /tmp/test.txthello girl!hello boy!可以看到,如果在写之前先读取一下文件,再进行写入,则写入的数据会添加到文件末尾而不会替换掉原先的文件。
这是因为指针引起的,r 模式的指针默认是在文件的开头,如果直接写入,则会覆盖源文件,通过read() 读取文件后,指针会移到文件的末尾,再写入数据就不会有问题了。
这里也可以使用a 模式>>> f = open(‘/tmp/test.txt’,’a’)>>> f.write(‘\nhello man!’)>>> f.close()>>>[root@node1 python]# cat /tmp/test.txthello girl!hello boy!hello man!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)