【发布时间】:2011-03-11 19:48:16
【问题描述】:
假设我有一个文件 /etc/conf1
它的内容类似于
option = banana
name = monkey
operation = eat
假设我想用“鸵鸟”替换“猴子”。如果不将文件读入内存,更改它然后将其全部写回,我怎么能做到这一点?基本上,我怎样才能“就地”修改文件?
【问题讨论】:
-
有困难。您认为通过修改“就地”可以实现什么?它是一个大文件,您担心将其保存在内存中吗?
-
如果您想更改文件大小,我认为您不能。
sed也不能这样做,当前的操作系统根本不支持它。作为替代方案,您可以查看ConfigParser模块以解析 INI 样式的配置文件。 -
在当前情况下,它更像是一个假设的“我读取文件、修改文件、写入文件并在中途遇到问题并最终导致文件损坏的可能性有多大?”问题。我想过一种“读取 conf1,修改,写入 conf1.temp,mv conf1.temp conf1”的方法,但我认为可以有一种更优雅的方式来做到这一点。就地模式会很酷。
标签: python file sed fopen file-manipulation