Я хочу заменить содержимое скрытого файла, поэтому я попытался открыть его в режиме 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+
, так что у вас есть "разрешение отклонено", но другое отлично работает?
UPDATE: Я нахожусь на win7 x64, используя Python 2.6.6, а целевой файл имеет свой скрытый набор атрибутов. Когда я попытался отключить скрытый атрибут, режим w
завершается успешно. Но когда я верну его, он снова не сработает.
Q. Почему режим w
отключается в скрытых файлах? Это известное поведение?