鱼C论坛

 找回密码
 立即注册
查看: 1725|回复: 3

[已解决]想问问python中写入文件是会把原来的内容删除的吗?

[复制链接]
发表于 2023-11-4 10:09:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
(由于级别不够,好像不能上传图片)
我的代码是这样的:
f=open("pythontxt.txt","w")
print('''dddddddddddddd''',file=f,flush=False)
f.close()
f=open("pythontxt.txt","w")
print("ffffffffffffffffffffffffffff",file=f,flush=False)
f.close()
f=open("pythontxt.txt","w")
f.write('ssssssssssssssss')
f.close()
f=open("pythontxt.txt","w")
f.write('mmmmmmmmmmmmmm')
f.close()
最后打开文档只有最后输入的mmmmmmmmmmmmmm,想问问是写入文件时会把原来的内容删除的吗?如果是的话如何才能不删除呢?
最佳答案
2023-11-4 10:11:45
在 Python 中,当使用 "w" 模式打开文件进行写入操作时,会将原来的内容删除并覆盖为新的内容。这是因为 "w" 模式是以写入方式打开文件,如果文件已存在,则会清空文件内容。

如果您想要在原有内容的基础上进行追加或者保留原来的内容,并添加新的内容,可以使用 "a" 模式来打开文件,即以追加方式写入。下面是修改后的示例代码:
f = open("pythontxt.txt", "a")  # 使用 "a" 模式打开文件print("ffffffffffffffffffffffffffff", file=f, flush=False)f.close()f = open("pythontxt.txt", "a")f.write('ssssssssssssssss')f.close()f = open("pythontxt.txt", "a")f.write('mmmmmmmmmmmmmm')f.close()
通过使用 "a" 模式打开文件,您可以将新的内容追加到文件的末尾,而不会删除原有的内容。每次写入时,新的内容都会添加到文件的末尾。

另外,您还可以使用 "r+" 模式以读写方式打开文件,这样可以在保留原有内容的情况下进行修改和写入操作。但需要注意的是,使用 "r+" 模式打开文件时,写入的内容会从当前文件指针所在的位置开始写入,可能会覆盖部分原有内容。

请注意,无论您选择哪种方式进行文件操作,在修改完文件后,最好使用 f.close() 或者 with open() as f: 结构来关闭文件,以确保文件操作完成并释放资源。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-4 10:09:42 | 显示全部楼层
是的,当你使用 "w" 模式打开文件并写入内容时,Python会先清空文件的原有内容,然后写入新的内容。

如果你想在不删除原有内容的情况下写入新的内容,可以使用 "a" 模式来打开文件。使用 "a" 模式时,Python会在文件末尾追加新的内容而不会删除原有内容。

你可以将代码中的 "w" 替换为 "a",如下所示:
f = open("pythontxt.txt", "a")
f.write('ssssssssssssssss')
f.close()

这样,每次写入文件时,新的内容都会被追加到文件的末尾,而不会删除原有内容。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-4 10:10:09 | 显示全部楼层
在Python中,当你使用\"w\"模式打开一个文件进行写入时,如果该文件已经存在,那么它的内容将会被清空,然后开始写入新的内容。这就是为什么你在你的例子中只看到最后写入的'mmmmmmmmmmmmmm'。

如果你想在不删除原有内容的情况下向文件中写入新的内容,你应该使用\"a\"(追加)模式来打开文件。这样,新的内容将会被添加到文件的末尾,而不是覆盖原有的内容。

你的代码可以修改为:
f=open("pythontxt.txt","a")
print('''dddddddddddddd''',file=f,flush=False)
f.close()
f=open("pythontxt.txt","a")
print("ffffffffffffffffffffffffffff",file=f,flush=False)
f.close()
f=open("pythontxt.txt","a")
f.write('ssssssssssssssss')
f.close()
f=open("pythontxt.txt","a")
f.write('mmmmmmmmmmmmmm')
f.close()

这样,每次写入的内容都会被追加到文件的末尾,而不会删除之前的内容。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-4 10:11:45 | 显示全部楼层    本楼为最佳答案   
在 Python 中,当使用 "w" 模式打开文件进行写入操作时,会将原来的内容删除并覆盖为新的内容。这是因为 "w" 模式是以写入方式打开文件,如果文件已存在,则会清空文件内容。

如果您想要在原有内容的基础上进行追加或者保留原来的内容,并添加新的内容,可以使用 "a" 模式来打开文件,即以追加方式写入。下面是修改后的示例代码:
f = open("pythontxt.txt", "a")  # 使用 "a" 模式打开文件print("ffffffffffffffffffffffffffff", file=f, flush=False)f.close()f = open("pythontxt.txt", "a")f.write('ssssssssssssssss')f.close()f = open("pythontxt.txt", "a")f.write('mmmmmmmmmmmmmm')f.close()
通过使用 "a" 模式打开文件,您可以将新的内容追加到文件的末尾,而不会删除原有的内容。每次写入时,新的内容都会添加到文件的末尾。

另外,您还可以使用 "r+" 模式以读写方式打开文件,这样可以在保留原有内容的情况下进行修改和写入操作。但需要注意的是,使用 "r+" 模式打开文件时,写入的内容会从当前文件指针所在的位置开始写入,可能会覆盖部分原有内容。

请注意,无论您选择哪种方式进行文件操作,在修改完文件后,最好使用 f.close() 或者 with open() as f: 结构来关闭文件,以确保文件操作完成并释放资源。

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 13:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表