【发布时间】:2014-09-26 17:36:39
【问题描述】:
我想这是一个已经问了两万次的问题,但我不明白为什么文件总是空的。我想打开一个文件,从整个文件中删除一个字符串,然后重写内容,但文件最终为空。这是我使用的代码:
f = open(filename,'w+')
f.write(f.read().replace(str_to_del,""))
f.close()
但是文件总是空的。如果我改为使用“r+”,则会附加内容,并且文件中有重复的文本。我正在使用 Python 3.3 。我错过了什么?
【问题讨论】:
-
冒着看起来很愚蠢的风险,你不是用空字符串替换所有内容吗?
-
是的,事实上。 w+ 清空文件,我想知道它为什么会这样。那么f没有文件的内容,那我该怎么办呢?
-
简答:在
'r'打开一次获取内容,在'w'再次打开替换现有内容。 -
@Novalink:如果您不知道为什么
w+模式会清空文件,请阅读open函数(或交互式会话中的help(open))的文档;它将解释什么模式的意思。 -
@Novalink 这只是教程,您需要库参考:docs.python.org/3.4/library/functions.html#open
标签: python