2016-05-11 8 views
0

Pythonを使用して、パラメータ付きの実行可能ファイル(Windows 7)を実行しようとしています。私はプログラムを実行させることができましたが、私が使うことができるパラメータの量は、Pythonスクリプトがパラメータで動作することが証明されることが限られています。最良のものは、そのようにフォーマットされています。私は窓を使用して、これをテストしているPython - ファイル出力のパラメータを持つプログラムを実行

DEBUG.TXT

-debugoutputは、編集されたターゲットとショートカットとそれが動作しますが、それはプログラムディレクトリ内のデバッグ出力を作成します。ここで

は、私が使用していたコードです:

import subprocess 
args = [r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput debug.txt"] 
subprocess.call(args) 

これは、プログラムを実行しないが、デバッグ出力は作成されません。私はパラメータの前に "r"を入れてみましたが、これは違いはありませんでした。私はそれが単純な書式設定のエラーだと仮定しますが、私は同じ事をやっているから学ぶための例を見つけることができません。

UPDATE:確かに答えを皆のため

おかげで、すべて同じ、簡単な書式設定エラー。

+2

args = ['"yourpath.exe"、 "-debugoutput"、 "debug.txt"]を試してみてください。 – zoubida13

+0

それは動作するかどうかわかりませんが、 'import subprocess args = [r" C:\ Users \ MyName \ LevelEditor \ LevelEditor.exe "、" -debugoutput "、" debug.txt "] subprocess.run(args ) ' – gunzapper

+0

パラメータを分割するとうまくいきませんが、なぜ私はそのことを考えなかったのか分かりません。 – MonikerHart

答えて

1

でコード定義の結果に続いて、それが動作するかどうか知っているが、

import subprocess 
args = [r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput", "debug.txt"] 
subprocess.run(args) 

ません:あなたが見ることができるように

C:\Users\MyName\LevelEditor\LevelEditor.exe "-debugoutput debug.txt" 

-debugoutput debug.txtを単一のリスト要素にマージすることによって、それらの間のスペースをコマンドライン引数の区切り文字として解析してはならないことを明示しました。

期待される動作を達成するには、ファイル名文字列を引数リストに別の要素として入れます。

[r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput", "debug.txt"] 
0

限り、私はあなたがスペースで引数を分割する必要が知っているので、あなたの引数は次のようになりますよう:

args = [r"C:\Users\MyName\LevelEditor\LevelEditor.exe", "-debugoutput", "debug.txt"] 

は、その仕事をしていますか?

+0

ありがとう、それは働いた。出力が間違ったフォルダに表示されています(私はそれを検索しなければなりませんでした)が、パラメータでプログラムを実行しています。 – MonikerHart

0

私はシェルコマンドラインの呼び出しでdocs

関連する問題