列表-在命令中使用

时间:2018-08-16 18:35:26

标签: python

我从设备上获得了输出,并且输出存储在下面的变量列表中

output = ['Gig 5/1', 'Gig 5/37', 'Gig 6/37', 'Gig 5/7', 'Gig 6/3', 'Gig 5/3']

同样,我需要通过从输出中选择索引来在同一设备上运行不同的命令。

command = 'show interface '+output[0]

如果输入索引值,则会得到输出。对于某些设备,输出索引计数不断变化。需要执行命令而不提及确切的索引,并且还需要在所有索引执行后中断。最后,结果要么需要存储在单个变量中,要么每执行一条命令就需要将结果存储在新变量中。

1 个答案:

答案 0 :(得分:0)

这是一个使用迭代和子流程来完成工作的代码示例:

import subprocess

output = ['Gig 5/1', 'Gig 5/37', 'Gig 6/37', 'Gig 5/7', 'Gig 6/3', 'Gig 5/3']

for item in output:
    subprocess.call(('show', 'interface', item))

这是假设这些是系统命令。如果没有,您将不得不用更合适的东西代替subprocess


另一种方法是使用字典而不是列表:

output = {
  'Gig 5/1': None,
  'Gig 5/37': None, 
  'Gig 6/37': None, 
  'Gig 5/7': None, 
  'Gig 6/3': None, 
  'Gig 5/3': None,
  }

for key in output:
  output[key] = do_something_with(key)

输出如下:

{
  'Gig 5/1': "result for Gig 5/1",
  'Gig 5/37': "result for Gig 5/37",
}

或者您可以按以下方式访问它:

for interface, value in output.items():
  print(interface, value)