Python 为什么在使用subprocess.Popen时会出现FileNotFoundError?
我尝试从python执行Python 为什么在使用subprocess.Popen时会出现FileNotFoundError?,python,bash,cmd,grep,cut,Python,Bash,Cmd,Grep,Cut,我尝试从python执行ping进程: import subprocess with open('ips') as f: line = f.readlines() for i in line: results=subprocess.Popen(["ping -c 1" + i]) print(results) 它失败,出现以下错误: 回溯(最近一次呼叫最后一次): 文件“python_test.py”,第9行,在 结果=subprocess.Popen([“ping-c1”+i]
ping
进程:
import subprocess
with open('ips') as f:
line = f.readlines()
for i in line:
results=subprocess.Popen(["ping -c 1" + i])
print(results)
它失败,出现以下错误:
回溯(最近一次呼叫最后一次):
文件“python_test.py”,第9行,在
结果=subprocess.Popen([“ping-c1”+i])
文件“/usr/lib/python3.5/subprocess.py”,第676行,在__
恢复信号,启动新会话)
文件“/usr/lib/python3.5/subprocess.py”,第1289行,在执行子进程中
引发子项异常类型(errno\u num、err\u msg)
FileNotFoundError:[Errno 2]没有这样的文件或目录:“ping-c 110.11.1.1\n”
这里我做错了什么?如果要使用
Popen
方法,则程序名和参数需要是列表中的独立元素,如下所示:
for i in lines:
p1 = subprocess.Popen(['ping', '-c 2', i], stdout=subprocess.PIPE)
# Run the command
output = p1.communicate()[0]
print(output)
从官方文件看,可能是run
方法使用较多
官方文件
只要返回一个退出代码,如果成功,返回数字0;如果出现错误,返回其他数字。这真的是你想要的吗?如果没有,按照文档所说的做。同时,“有这个错误”…什么错误?如果您想让我们调试它,您必须向我们展示它(并确保粘贴整个回溯)。我认为,我必须使用子流程模块。而不是操作系统。谢谢兄弟,它的工作很好,但唯一的问题是它的速度慢。