Я получаю странное поведение, используя модуль python fileinput
. Если файл, который я пытаюсь изменить, не имеет доступа к чтению пользователя, он удаляется.fileinput.py удаление целевого файла
import fileinput
try:
for line in fileinput.input('TEST', inplace=1):
line = line.strip()
if '/' in line:
print "PATH: " + line
else:
print line
except Exception as e:
print e
Если я запускаю этот файл, я получаю:
$ ls -l
--wxrwxrwx 1 myusername agqt3 0 Feb 25 11:02 TEST
$ python test.py
[Errno 13] Permission denied: 'TEST.bak'
$ ls -l
total 0
Файл будет удален. То же самое происходит с любой другой комбинацией битов разрешения, которые не включают пользователя r
. Я воспроизвел это в bash
, csh
и ksh
.
Ошибка отклонения разрешения возникает, поскольку отсутствует разрешение «w» в каталоге, содержащем TEST, возможно? –
@Cthulhu: Кажется, не так. Кроме того, я могу подтвердить, что это все еще происходит, даже если я создаю новый каталог в '/ tmp' и устанавливаю'/tmp/newDir' '777' и запускаю все внутри этого нового каталога. – gambol