使用Python通过Serial发送^ D.

时间:2018-01-29 15:06:03

标签: pyserial

我有一个脚本,可根据我公司的规格配置Juniper路由器。没有什么比他们给我的程序更加过于花哨了。并读取指定文件夹中的任何文件配置。无论如何,程序的最后一步是按Ctrl + D结束传输。奇怪的是,这个问题对我来说似乎是独一无二的,^ C和^ V似乎是常见的字符,但不是^ D.我试过/ EOT。有谁知道这个简单的脚本将如何发送^ D?代码挂在/ EOT上,这就是为什么我猜测我没有正确表达这个角色。

   ser.write ('root\r\n') 
    time.sleep(5)
    ser.write ('cli\r\n')
    ser.write('configure\r\n')  
    ser.write('top\r\n')
    ser.write('load set terminal\r\n')
    file = open('REDACTED', 'r+')
    text = file.read()
    ser.write(text + '/r')
    ser.write('\n')
    ser.write('\EOT')
    ser.write('commit and-quit\r\n')

`

1 个答案:

答案 0 :(得分:0)

escape sequence \ EOT不存在。

要发送ASCII码0x04(EOT),请使用以下命令:

ser.write( b'\x04' );   # send ^D (EOT)

另请参阅PySerial: How to send Ctrl-C command on the serial line