Python 为什么在使用subprocess.Popen时会出现FileNotFoundError?

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]

我尝试从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])
文件“/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;如果出现错误,返回其他数字。这真的是你想要的吗?如果没有,按照文档所说的做。同时,“有这个错误”…什么错误?如果您想让我们调试它,您必须向我们展示它(并确保粘贴整个回溯)。我认为,我必须使用子流程模块。而不是操作系统。谢谢兄弟,它的工作很好,但唯一的问题是它的速度慢。