w
隠しファイルの内容を置き換えたいので、消去/切り捨てられるようにモードで開こうとしました:
>>> import os
>>> ini_path = '.picasa.ini'
>>> os.path.exists(ini_path)
True
>>> os.access(ini_path, os.W_OK)
True
>>> ini_handle = open(ini_path, 'w')
しかし、これによりトレースバックが発生しました。
IOError: [Errno 13] Permission denied: '.picasa.ini'
r+
ただし、次のモードで意図した結果を達成できました。
>>> ini_handle = open(ini_path, 'r+')
>>> ini_handle.truncate()
>>> ini_handle.write(ini_new)
>>> ini_handle.close()
Q.w
とモードの違いは何ですか。r+
一方は「許可が拒否されました」が、もう一方は正常に動作しますか?
更新:私は Python 2.6.6 を使用して win7 x64 を使用しており、ターゲット ファイルには隠し属性が設定されています。隠し属性をオフにしてみたらw
モード成功。しかし、再びオンにすると、再び失敗します。
Q.w
隠しファイルでモードが失敗するのはなぜですか? これは既知の動作ですか?