在我的 python 代码中,我使用 fileinput 模块进行就地替换:
import fileinput
for line in fileinput.FileInput("permission.txt",inplace=1):
line = line.strip()
if not 'def' in line:
print line
else:
line=line.replace(line,'zzz')
print line
fileinput.close()
但是,一旦完成,permission.txt 权限现在更改为仅限 root 访问。我无法再编辑该文件。我只能删除它。
我做了一些谷歌搜索,它提到这可能是因为 fileinput 为这个读/写替换交互创建了一个临时文件。
但是,自从 1999 年报告了该错误以来,我本以为会对此进行修复。这是我必须在代码中执行的操作以保持权限相同吗?还是操作系统级别的问题。
我在 Ubuntu 9.04 上使用 Python 2.6.2