4

誰かが理由を教えてくれるかどうか疑問に思っています

import subprocess, commands

p=subprocess.Popen(["ls", "*00080"], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
output=p.communicate()[0]
print "o", output
result=commands.getoutput("ls *00080")
print "o", result

出力を与えます:

o ls: cannot access *00080: No such file or directory

o 010.010.013.165.42974-010.010.013.164.00080

どちらもファイルを見つける必要がありますか?

A

4

1 に答える 1

10

commandsグロブ拡張を行うシェルを生成します。 subprocessを渡さない限り、シェルを生成しませんshell = True

言い換えると:

p=subprocess.Popen("ls *00080",shell=True,stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

したのと同じことをする必要がありcommandsます。

于 2012-09-14T14:57:23.340 に答える