2012-04-09 30 views
1

は、ファイルと述べました。ほとんどの場合、これはスムーズに行われました。しかし、私はハンドルを得ることができないいくつかのファイルがあります。例えば:とPythonのサブプロセス

File Not Found

Traceback (most recent call last):

File "< stdin >", line 1, in < module >

File "C:\Python27\lib\subprocess.py", line 544, in check_output

raise CalledProcessError(retcode, cmd, output=output)

subprocess.CalledProcessError: Command 'dir c:\windows\system32\nvvsvc.exe' returned non-zero exit status 1

私が試みなど、その多くの変形を試みた:

subprocess.check_output(r"dir c:\windows\system32\nvvsvc.exe", shell = True) 

がエラーを生成し:IOError: [Errno 2] No such file or directory: 'c:\\windows\\system32\\nvvsvc.exe

同様に、コマンド:

file("c:\\windows\\system32\\nvvsvc.exe") 

はエラーを生成しcacls.exeにファイルがあることを認めてもらえます。しかし、私がpythonインスタンス(exit())から戻ってdir c:\windows\system32\nvvsvc.exeを実行すると、そこには実際にファイルがあることが返されます。 CALC.EXEを使用して

同様のテストではなく、私はそれを見るとPythonの内側からうまくそれの両方をハッシュすることができます。

私は、Python 2.7を実行していますよ。私は管理者権限(コマンドプロンプトの管理者として実行)でPythonを起動しようとしましたが、それは何も変わりません。 Python内部から実行しているときに、ファイルシステムが本質的にファイルがPythonに存在しないものと思われる程度に権限が変更されているようです。参考

、当該ファイルの所有者は、(類似している他のものが存在する)、システムであり、ファイルにCACLSは、ユーザ、管理者、およびシステムからの読み出しを可能にします。

+3

は、アクセス権の問題のような音である

subprocess.check_output(r"c:\windows\SysNative\nvvsvc.exe", shell = True) 

を。 [昇格プロンプト](http://windows.microsoft.com/en-US/windows-vista/Command-Prompt-frequently-asked-questions)から実行していますか? –

答えて

1

単純な答え! (ただし、必ずしも見つけやすいわけではありません)IOErrorに関しては、バックスラッシュをエスケープする必要がないためです。上記のコメントで述べたよう

第二の部分は、アクセス許可エラーのように見えます。

+0

質問者の新しい入力を読んだ後でこれを編集しました。 –

+0

それで、私は生の書式設定された文字列で(同じように、ファイル名を二重にエスケープしないで)同じエラーにしようとしました。 また、昇格したコマンドプロンプトが表示されている場合と表示されていない場合を試しました。物事を変えるようには見えません。 – fantadisco

+0

投稿してからしばらく経っていますが、[サブプロセスのpythonドキュメント](http://docs.python.org/library/subprocess.html)を見ましたか?彼らはエラーについて話し、彼らは何をすべきかについての考えを引き起こすかもしれません。 –

0

これは64ビットシステムの場合、この試してみてください。ここで重要なのは「SysNative」

関連する問題