我写了一个脚本来配置路由器基本上它将是网页,它会把参数传递给python。目前,它只是写入一个文件并使用exscript通过ssh进行编写
例如,这是脚本的色调版本,当它从网页接收到它的参数后,下面的脚本将运行
python myscript.py 4 newfile.txt
(4和newfile是从网页接收的变量)
剧本是这样的
from sys import argv
script, vlanno, filename = argv
target = open(Filename, 'w')
vlanapply = (int vlan %r) %svino
target.write(vlanapply)
好的,这是可行的,但问题是输出的数字4是一个vlan没有
它显示为int vlan“4”
当我尝试使用exscript连接执行对于cisco设备,它抛出一个无效的命令错误,其他非变量命令工作正常。你知道吗
问题是命令是int vlan 4不是int vlan“4”
我怎样才能摆脱''?你知道吗
问题在声明中:
%r
打印vino
表示的实际对象—在本例中是一个字符串。你知道吗将上面的行替换为如下内容:
这应该能正常工作。你知道吗
请参阅this问题,该问题提供了python中%r和%s指令的良好描述
%r
字符串格式使用repr
。如果参数是字符串,结果将被括在引号中,并像在交互式会话中一样转义。你知道吗您可能希望使用
%s
,它使用str
格式化参数。这将消除引用。你知道吗顺便说一下,如果您使用的是Python2.7+(或Python3+),则可以使用更好的语法来写入文件:
相关问题 更多 >
编程相关推荐