【发布时间】:2015-05-15 05:52:01
【问题描述】:
import sys,os
import subprocess
import pdb
pdb.set_trace()
findCMD = 'find . -name "pcapdump0"'
print os.getcwd()
print findCMD
out = subprocess.Popen(findCMD,stdout=subprocess.PIPE)
(stdout, stderr) = out.communicate()
filelist = stdout.decode().split()
print filelist
我收到了这个错误
Traceback (most recent call last):
File "generatepcap.py", line 10, in <module>
out = subprocess.Popen(findCMD,stdout=subprocess.PIPE)
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
【问题讨论】:
-
更具体!你想实现什么,哪部分代码导致问题,.... find 的调用是否返回任何文件?
-
Popen 需要参数序列,而不是单个大字符串。使用
subprocess.Popen(shlex.split(findCMD), stfout=subprocess.PIPE)。 -
that question 的重复。有关详细说明,请参阅链接。