2016-11-29 2 views
-3

このコードをアプリケーション(.exe)ファイルとして実行すると、空白の出力ウィンドウが返されます。os.popenが.exeとして機能しない

import os 

r = os.popen('cmd').read() 
print(r) 

(Output Window)

誰かが私のコードを修正するか、altenativeを示唆してもらえますか? 編集: 私の目的は、プログラムを実行可能ファイルとして実行し、DOSコンソールでコマンドを実行し、コマンドの出力を返すことです。

おかげ

答えて

0

os.popen

Open a pipe to or from command. The return value is an open file object connected to the pipe, which can be read or written depending on whether mode is 'r' (default) or 'w'.

あなただけのアプリを呼び出したい場合:

os.popen('app_you_want_call.exe') 

あなたは、Windowsのコマンドラインで対話的に再生しようとしている場合は、あなたがしなければなりません次のようなもの:

import subprocess 
proc = subprocess.Popen('cmd.exe', stdin=subprocess.PIPE) 
proc.stdin.write("YOUR COMMAND HERE") 

More about subprocess

+0

コード出力この例外: 「トレースバック(最新の呼び出しの最後): ファイル "C:\ Users \ユーザーmyusernameと指定\デスクトップ\のtesting.py" stdin.writeで、3行目、(」 cmd ") NameError:name 'stdin'が定義されていません –

+0

固定されています(私は' stdin.write'の前に 'proc.'を忘れています) – Arount

+0

私の混乱の解答とあなたの忍耐に感謝します。申し訳ありません –

関連する問題