2016-11-13 2 views
0

私はこのダンパースクリプトを実行しようとしていますが、IDLEで実行しようとするたびにこのエラーが発生します:Python IOError:[Errno 13]アーカイブからの読み取りと解凍を試みたときに許可が拒否されました

Traceback (most recent call last): 
    File "C:\Python27\Python_Scripts\dumper.py", line 282, in <module> 
    cat=Cat(catName) 
    File "C:\Python27\Python_Scripts\dumper.py", line 47, in __init__ 
    cat2=open(catname,"rb") 
IOError: [Errno 13] Permission denied: 'C:/Program Files (x86)/Origin Games/Plants vs Zombies Garden Warfare 2' 
>>> 

私はWindows 7のコマンドラインで管理者としても実行しましたが、その幸運はありません。問題が何であるかについて誰かが考えているなら、私に知らせてください。私が役立つ場合は、完全な.pyファイルを提供することができます。

+1

あなたは、管理者として 'cmd'を実行し、そのコンソールからスクリプトを実行しようとしましたか? – Maurice

+0

コードを表示してください(常に質問のあるコードを表示してください)。また、開こうとしているファイルが実際に存在していますか? –

+1

ディレクトリを開こうとしているようですが、あまり意味がありません。 –

答えて

0

ブライスの疑惑は正しいです。

>>> open('C:/programs', 'rb') # a directory 
Traceback (most recent call last): 
    File "<pyshell#1>", line 1, in <module> 
    open('C:/programs', 'rb') 
PermissionError: [Errno 13] Permission denied: 'C:/programs' 
+1

ディレクトリを通常のファイルとして開こうとすると、 'NtCreateFile'システムコールがエラーコード' STATUS_FILE_IS_A_DIRECTORY'で失敗します。残念ながら、これはWinAPIの 'CreateFile'によってWindowsのエラーコード' ERROR_ACCESS_DENIED'にマッピングされ、Pythonの 'PermissionError'にマッピングされます。これは、問題がセキュリティに関連していると思わせる(例えば、DACLにおけるACEの拒否、管理者アクセスの欠如など)疑いを抱かせる。 POSIXシステムでは、ディレクトリをファイルとして開こうとすると、Pythonは非常に正常な例外 'IsADirectoryError'を発生させます。 – eryksun

+0

@eryksun私は、他のエラーコードがerrno 13にマップされていると推測します。そのため、情報は本当に失われ、簡単には復元できません。 –

+0

Cで使用されている 'errno'コードの数が少ないです。多くのWindowsエラーは 'EACCES'(13)にマップされますが、通常は間違っていると仮定して、GetLastError経由でWindowsエラーに戻ることができます。しかし、 'ERROR_ACCESS_DENIED'(5)に戻ることは役に立ちません。 – eryksun

関連する問題