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

两者都应该找到文件,不是吗?

一个

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 回答