求问,在学Python,在下面的代码中,根据上课是所说,open文件是“w”模式每次写入会覆盖原先文件中的内容,这个为什么没有全部覆盖啊
a = open("/Users/ly/Desktop/bill.txt", "r", encoding="UTF-8")
a_bak = open("/Users/ly/Desktop/bill_bak.txt","w",encoding="UTF-8")
for i in a.readlines():
c = i.strip().split(",")
for g in c:
if g == "正式":
a_bak.write(i)
a.close()
a_bak.close()
可能是因为在写入文件之前,文件中已经存在了一些内容,这些内容没有被删除,所以在使用“w”模式打开文件时,新写入的内容会和原有的内容一起被保存到文件中。如果想要完全覆盖原有内容,可以尝试先清空bill_bak.txt文件中的内容再进行写入操作。
【相关推荐】
w是只写模式:在文件不存在时创建空文档;文件存在时清空文件,文件指针跑到文件开头。
with open('b.txt',mode='w',encoding='utf-8') as f:
f.write('123\n')
f.write('1234\n')
f.write('12345\n')
在文件不关闭的情况下,连续的写入,后写的内容一定跟在前写内容的后面。
如果重新以w模式打开文件,则会清空文件内容。