python - 用Python替换文件内容

标签 python

我想这个问题已经被问了两万次了,但我不明白为什么文件总是空的。我想打开一个文件,从整个文件中删除一个字符串,然后重写内容,但文件最终是空的。这是我使用的代码:

f = open(filename,'w+')
f.write(f.read().replace(str_to_del,""))
f.close()

但文件始终为空。如果我改为使用“r+”,则会附加内容,并且文件中会有重复的文本。我正在使用 Python 3.3 。我错过了什么?

最佳答案

w+ 模式打开文件会截断文件。因此,您的 f.read() 保证不会返回任何内容。

您可以通过以r+ 模式打开文件、读取它、然后调用f.seek(0)、然后写入来完成此操作。或者以 r 模式打开文件,读取它,关闭它,以 w 模式重新打开它,然后写入。或者,更好的方法是编写一个临时文件并将其移动到原始文件上(这会为您提供“原子”行为 - 不可能以半写入的文件结束)。

关于python - 用Python替换文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25115410/

相关文章:

python - 编写CSV文件Python3问题

python - 在pyspark中解析一行中的多个json

Python 2.7.7 包安装给出 Visual C++ cl.exe 错误 : command failed with exit status 2

python - 粘贴到 cmd/powershell 会截掉第一个字母

python - 最多 'o' 个字符的单词

python - 在python中连接数据框的列?

python - 为代码的每次运行设置不同的种子

python - 我怎样才能替换 ElementTree 中的子元素

python - 从 python 中的文件解析

python - 另一个 Flask/AWS WSGIPath 错误,特别是 : WSGIPath refers to a file that does not exist