В моем коде 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()
Однако, как только это будет сделано, права на разрешение.txt теперь изменены на доступ только с правами root. Я больше не могу редактировать файл. Я могу только удалить его.
Я немного погуглил и упомянул, что это может быть вызвано тем, что fileinput создает временный файл для этого взаимодействия чтения / записи с заменой.
Тем не менее, я бы подумал, что это будет исправлено, поскольку об ошибке сообщалось в 1999 году. Что-то, что я должен сделать в своем коде, чтобы сохранить права доступа такими же? или это проблема уровня операционной системы.
Я использую Python 2.6.2 в Ubuntu 9.04