3

Windowsで実行すると、次のPythonプログラムが上記の出力(出力変数の内容)を生成します。

import commands

cmd = "dir"
(output) = commands.getoutput(cmd)
print output

とても面白くてイライラします。誰かが私に説明を教えてもらえますか?

4

1 に答える 1

8

ドキュメントを参照してください:

cmdは実際には{cmd;として実行されます。} 2>&1

そこ{から来ています。subprocess代わりに使用する必要があります。

import subprocess
p = subprocess.Popen(['dir'],stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
stdout,stderr = p.communicate()

shell=Truedirは内部DOSコマンドであるため、この特定のケースではが必要です。通常、実行可能ファイルへのフルパスを指定し、シェルを無効にしておく必要があります。

于 2012-10-17T14:52:38.717 に答える