包含列表中的字符串参数

问题描述:

我有一个通过netmiko。(https://github.com/ktbyers/netmiko)函数传递的防火墙的cli命令列表。包含列表中的字符串参数

问题是,某些字符串命令包含其他参数,例如 send_command_timing(“显示系统信息,delay_factor = 1,max_loops = 150,strip_prompt =真,strip_command = TRUE)

有没有一种方法,我可以添加整个命令,包括参数的清单?

list_a =[ "Do_Something","Do_Something|else","Do_Altogether_Something_Else |"] 

     for command in list_a : 
      matching = [s for s in list_a if "|" in s] 
      if command == matching: 
       query = connection.send_command_timing(matching,delay_factor=1, max_loops=150, strip_prompt=True,strip_command=True) 
       print (query) 

对不起,如果我的问题有点模棱两可请让我知道如果这是更好的

+2

我读过你的问题多次,还是不明白你正在尝试做的。请花时间提出明确的问题。 – ILostMySpoon

+0

我尽可能地尝试将你的问题编辑成我认为你想要问的问题。如果我的编辑错误,请告诉我,我会将它们回滚。如果我错了,请尝试自己编辑问题,以明确你的意思。 –

我不是100%确定你想要做什么,但这是我最好的解决方案。我从问题中收集(并纠正我,如果我错了),你有一个字符串列表,其中每个字符串是一个命令,其后是参数t o命令;即它们遵循以下格式:'command|arg0|arg1|arg2'。我认为这是因为你的问题是因为你的问题说:

问题是,一些字符串命令还包括它们的参数,它们是由实际命令的垂直条分隔的。

现在,你还说你想从命令中分离参数。给出input_string,这是一个可以为你做的功能。

def separate_args_and_command(input_string): 
    command_and_args = input_string.split('|') 
    return command_and_args[0], command_and_args[1:] 

该函数返回一个包含您的命令的元组,随后是您的参数列表。这里有一个简单的例子:

>>> separate_args_and_command('my_command|my_arg0|my_arg1') 
('my_command', ['my_arg0', 'my_arg1']) 

这里是你将如何使用这个功能,你的问题的例子:

list_a = ["command0|arg0", "command1","command2|arg0|arg1|arg2"] 
for command_and_args in list_a: 
    command, arguments = separate_args_and_command(command_and_args) 

    # Now you have your command, and your arguments separated. If there are no 
    # arguments, the arguments variable will be an empty list. 
+0

我认为这是在写作方向。将与此工作,看看它是否得到我所要找的感谢。 –