Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python netstat无法与popen一起正常工作_Python_Popen_Netstat - Fatal编程技术网

Python netstat无法与popen一起正常工作

Python netstat无法与popen一起正常工作,python,popen,netstat,Python,Popen,Netstat,使用Python运行此命令时 p = Popen(['netstat', '-atunp'], shell=True, stdout=PIPE, stderr=PIPE) stdout, stderr = p.communicate() print stdout 我得到了不同的输出。也就是说,如果我从命令行运行相同的命令,我可以看到IP地址和应用程序名,而使用Python则不能 要查看IP地址和应用程序名称,我还需要做些什么吗?我想我在没有-p标志的情况下运行了您的命令。此标志需要一个协议。这

使用Python运行此命令时

p = Popen(['netstat', '-atunp'], shell=True, stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()
print stdout
我得到了不同的输出。也就是说,如果我从命令行运行相同的命令,我可以看到IP地址和应用程序名,而使用Python则不能


要查看IP地址和应用程序名称,我还需要做些什么吗?

我想我在没有
-p
标志的情况下运行了您的命令。此标志需要一个协议。这可能就是标准输出字符串为空的原因<另一方面,code>stderr会出现以下错误-

In [86]: stderr
Out[86]: 'netstat: option requires an argument -- p\nUsage:\tnetstat [-AaLlnW] [-f address_family | -p protocol]\n\tnetstat [-gilns] [-f address_family]\n\tnetstat -i | -I interface [-w wait] [-abdgRt]\n\tnetstat -s [-s] [-f address_family | -p protocol] [-w wait]\n\tnetstat -i | -I interface -s [-f address_family | -p protocol]\n\tnetstat -m [-m]\n\tnetstat -r [-Aaln] [-f address_family]\n\tnetstat -rs [-s]\n\n'
因此,像这样更新您的命令(删除
shell=True
并添加协议作为参数)——


您能向我们展示您得到的输出吗?drop
shell=True
。请参见问题中的
打印标准输出
。据我所知,问题可能与此类似,OP希望netstat输出像他在命令行上看到的那样进行修饰。基于新行进行拆分,得到与终端相同的输出。否。这是不对的
stdout
是一个字符串(可能包含嵌入的换行符(
'\n'
字符))
stdout.split('\n')
返回Python列表。您看到的输出是
repr(The_list)
,这不是终端将显示的内容。同意这不是终端将显示的内容。我是在评论一部分,其中一个很好的值列表比视觉上混乱的字符串更有意义。@J.F.Sebastian更新了答案。你怎么认为?
In [87]: paste
p = Popen(['netstat', '-atunp', 'tcp'], stdout=PIPE, stderr=PIPE)
stdout, stderr = p.communicate()
print stdout

## -- End pasted text --
Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)    
tcp4       0      0  192.168.1.100.53076    198.252.206.140.80     ESTABLISHED
tcp4       0      0  192.168.1.100.53075    198.252.206.140.80     ESTABLISHED
tcp4       0      0  192.168.1.100.53004    216.58.220.3.443       ESTABLISHED
tcp4       0      0  192.168.1.100.52984    74.125.200.155.443     ESTABLISHED
tcp4       0      0  192.168.1.100.52954    198.252.206.149.443    ESTABLISHED
tcp4       0      0  192.168.1.100.52927    91.189.89.222.443      FIN_WAIT_1 
tcp4       0      0  192.168.1.100.52925    173.194.120.144.443    ESTABLISHED
tcp4       0      0  192.168.1.100.52869    74.125.130.155.443     ESTABLISHED
tcp4       0      0  192.168.1.100.52863    74.125.68.139.443      ESTABLISHED
tcp4       0      0  192.168.1.100.52858    74.125.130.102.443     ESTABLISHED
tcp4       0      0  192.168.1.100.52851    74.125.68.93.443       ESTABLISHED
tcp4       0      0  192.168.1.100.52847    74.125.200.132.443     ESTABLISHED
tcp4       0      0  192.168.1.100.52814    216.58.216.163.443     ESTABLISHED
tcp4       0      0  192.168.1.100.52812    74.125.68.189.443      ESTABLISHED
tcp4       0      0  192.168.1.100.52794    74.125.130.17.443      ESTABLISHED
tcp4       0      0  192.168.1.100.52793    198.252.206.149.443    ESTABLISHED
tcp4       0      0  192.168.1.100.52761    74.125.68.138.443      ESTABLISHED
tcp4       0      0  192.168.1.100.52737    74.125.68.132.443      ESTABLISHED
tcp4       0      0  192.168.1.100.52577    17.172.232.205.443     ESTABLISHED
tcp4       0      0  192.168.1.100.52571    74.125.130.188.443     ESTABLISHED
tcp6       0      0  fd9a:f3a0:3346:7.4488  *.*                    LISTEN     
tcp4       0      0  *.*                    *.*                    CLOSED     
tcp4       0      0  127.0.0.1.631          *.*                    LISTEN     
tcp6       0      0  ::1.631                *.*                    LISTEN