fileinput
Pythonモジュールを使用すると、奇妙な動作が発生します。変更しようとしているファイルにユーザーの読み取りアクセス権がない場合、そのファイルは削除されます。
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
。