我想替换隐藏文件的内容,所以我尝试以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
模式成功。但是当我重新打开它时,它又失败了。
问:为什么w
隐藏文件模式会失败?这是已知的行为吗?