Python脚本将ubuntu终端命令发送到列表

时间:2018-09-20 20:41:02

标签: python terminal command

我在Ubuntu中有以下命令:

bgpq3 -4 AS-YAHOO-JP-2 -m 24 -l Google

输出是前缀列表:

  

ip前缀列表Google许可14.137.224.0/19

     

ip前缀列表Google许可27.111.76.0/22

     

ip前缀列表Google许可27.121.128.0/17

     

ip前缀列表Google许可27.133.224.0/22

     

ip前缀列表Google许可27.133.240.0/22

     

ip前缀列表Google许可27.133.240.0/24

     

ip前缀列表Google许可27.133.241.0/24

     

ip前缀列表Google许可27.133.242.0/24

     

ip前缀列表Google许可27.133.243.0/24

如何将输出放入列表并使用每一行(例如,将它们发送到数据库),我不想先将它们保存到file.txt

我正在使用此命令,但没有帮助,因为结果存储在文本文件中。

os.system("bgpq3 -4 AS-YAHOO-JP-2 -m 24 -l Google > list.txt")

请帮助我解决这个问题!

1 个答案:

答案 0 :(得分:0)

我认为,您可以使用子流程模块。该模块替代了一些较旧的模块和功能。官方文件在这里:https://docs.python.org/3/library/subprocess.html#module-subprocess

import subprocess
res = subprocess.Popen('bgpq3 -4 AS-YAHOO-JP-2 -m 24 -l Google', shell=True,
                       universal_newlines=True,
                       stdout=subprocess.PIPE).communicate()[0]

for line in res.split('\n'):
    print(line)