创建命令Python的输出

时间:2018-10-15 16:26:08

标签: python linux ssh

我一直在研究将在python中执行特定命令的代码

try:
    portNumber = ('\nPlease pick a Port#: ')
    description = str('Please add  port description: ')
    config_commands = ('port set port' +portNumber
    'description' +description)
    #Should become ['port set port' +# description +description]

    print ('Accessing port')  # should be accessing th eport
    output = net_connect.send_command('port set port' [portNumber] [description]) # i 
    returns the output of the config_commands
    print (output) #should show config commands

    print ('Showing New Configuration')
    output = net_connect.send_command_expect('port show status')
    print (output) # print new config

    print ('Saving Configuration...')
    output = net_connect.send_command('configuration save') # returns output of 
    specified command
    print (output)

但是它总是失败
任何想法? 合并似乎是个问题

   [root@localhost ansible]# python show.py
File "show.py", line 37
'description' +description)

output = net_connect.send_command('port set port' [portNumber] description [description]) # returns the output of the config_commands TypeError: string indices must be integers, not str

1 个答案:

答案 0 :(得分:0)

config_commands = ('port set port' +portNumber
'description' +description)

这不是合法语法。如果变量portNumber和字符串文字'description'之间没有运算符,则无法合并。它们在单独的行上没关系。也许您打算将它们与“ +”组合?

config_commands = ('port set port' +portNumber + 'description' +description)

这并不重要。您永远不会使用config_commands变量,因此也可以完全删除该行。

接下来,

output = net_connect.send_command('port set port' [portNumber] [description])

如果您尝试将'port set port'portNumberdescription合并为一个字符串,则这不是您的方法。 'port set port' [portNumber]实际上等效于“返回索引为'port set port'的字符串portNumber中的字符”。但是,如果portNumber是整数,则这只是合法操作。您的portNumber不是整数,而是一个字符串:'\nPlease pick a Port#: '。如果您只想合并这些值,则可以执行以下操作:

output = net_connect.send_command("port set port {} {}".format(portNumber, description))

我不知道port命令的作用,但我猜您实际上并不打算将'\nPlease pick a Port#: '作为第一个参数。如果要提示用户输入数字并传递该数字,则可能应该使用input函数。

portNumber = input('\nPlease pick a Port#: ')

description也是如此。