包含列表中的字符串参数
我有一个通过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)
对不起,如果我的问题有点模棱两可请让我知道如果这是更好的
我不是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.
我认为这是在写作方向。将与此工作,看看它是否得到我所要找的感谢。 –
我读过你的问题多次,还是不明白你正在尝试做的。请花时间提出明确的问题。 – ILostMySpoon
我尽可能地尝试将你的问题编辑成我认为你想要问的问题。如果我的编辑错误,请告诉我,我会将它们回滚。如果我错了,请尝试自己编辑问题,以明确你的意思。 –