更新:subprocess.call
の代わりにを使用するsubprocess.Popen
と、問題は解決されます。原因を知っている人はいますか? そして、別の問題が発生しました:出力を制御する方法が見つからないようです...出力をsubprocess.call
文字列などにリダイレクトする方法はありますか? ありがとう!
プロジェクトのビルドに使用しようとしてDevenv
いますが、コマンド プロンプトに次のように入力すると問題なく動作しますdevenv A.sln /build "Debug|Win32"
が、python を使用して上記と同じ行のPopen(cmd,shell=true)
whereを使用して実行すると、何も表示されません。cmd
を削除し|
てのみに変更すると"Debug"
、機能します....
なぜこれが起こるのか誰か知っていますか?\
前にを入れてみました|
が、まだ何も起こりません..
これは私が使用しているコードです:
from subprocess import Popen, PIPE
cmd = ' "C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\IDE\\devenv" solution.sln /build "Debug|Win32" '
sys.stdout.flush()
p = Popen(cmd,shell=True,stdout=PIPE,stderr=PIPE)
lines = []
for line in p.stdout.readlines():
lines.append(line)
out = string.join(lines)
print out
if out.strip():
print out.strip('\n')
sys.stdout.flush()
...これは機能しませんが、 と交換Debug|Win32
するとDebug
、完全に機能します..
ここにコメントをありがとう