1

システムのフォルダー内でexeファイルを実行するはずのコードを少し作成していて、次のようなエラーが表示されます...

WindowsError: [エラー 3] 指定されたパスが見つかりません。コードの一部を次に示します。

exepath = os.path.join(EXE file localtion)
exepath = '"' + os.path.normpath(exepath) + '"'
cmd = [exepath, '-el', str(el), '-n', str(z)]

print 'The python program is running this command:'
print cmd

process = Popen(cmd, stderr=STDOUT, stdout=PIPE)
outputstring = process.communicate()[0]

サブプロセスをインポートし、サブプロセスのインポートからもインポートしました*

たとえば、これは私が示すコードの最初の行で私のexeファイルの場所がどのように見えるかです:

 exepath= os.path.join('/Program Files','next folder','next folder','blah.exe')

何か不足していますか?

4

4 に答える 4

3

実行可能パスのスペースを適切にエスケープする必要があります

于 2009-06-18T15:24:27.557 に答える
1

問題を引き起こす可能性のあるスペースやその他の文字 (/ など) を適切にエスケープするだけでなく、8 文字の古い DOS パスを使用することもできます。

たとえば、Program Files は次のようになります。

Progra~1 、最後の 2 文字に ~1 を追加してください。

編集:文字列の前に r を追加して、生のリテラルにすることができます。Python は、文字列の文字を文字ごとに読み取ります。このような:

r "\プログラム ファイル"

于 2009-06-18T15:31:21.053 に答える
0

私の記憶が正しければ、2 行目のように、実行可能ファイルのパスを引用する必要はありません。

編集:まあ、近くの Windows ボックスをつかんで、これをテストしました。Popen は、パスが引用されているかどうかに関係なく同じように機能します。したがって、これは問題ではありません。

于 2009-06-18T15:23:54.393 に答える
0

cmd.exe私の知る限り、プログラムの実行に関与しない限り、パスを引用符で囲む必要はありません。

さらに、環境変数を使用してProgramFiles「Program Files」の実際の場所を確認することもできます。これは、地域の設定に依存し、TweakUI を使用して調整することもできるためです。

于 2009-06-18T15:28:53.070 に答える