Python 3.8 paramiko ssh,执行命令时出现问题
我对使用Python编码(以及一般的编码)相当陌生,在使用paramiko的SSH会话期间执行命令时遇到了一个问题。我使用的代码如下所示:Python 3.8 paramiko ssh,执行命令时出现问题,python,python-3.x,ssh,paramiko,Python,Python 3.x,Ssh,Paramiko,我对使用Python编码(以及一般的编码)相当陌生,在使用paramiko的SSH会话期间执行命令时遇到了一个问题。我使用的代码如下所示: from paramiko import SSHClient, AutoAddPolicy import time client = SSHClient() client.load_host_keys('C:\ssh\id_rsa') time.sleep(5) client.set_missing_host
from paramiko import SSHClient, AutoAddPolicy
import time
client = SSHClient()
client.load_host_keys('C:\ssh\id_rsa')
time.sleep(5)
client.set_missing_host_key_policy(AutoAddPolicy())
time.sleep(5)
client.connect('192.168.2.138', username='pi-star', password='******')
time.sleep(5)
with open('C:\WeatherPro\Final_Page.txt') as fnlpage:
datapage = fnlpage.read()
stdin, stdout, stderr = client.exec_command(datapage)
time.sleep(5)
client.close()
这是从Windows10Pro机器SSH到Raspberry Pi,其中有一个运行Pi-Star(基于raspbian\debian的操作系统-GUI)的MMDVM hat(addon-ham无线电收发器设备)。我用它每10分钟向寻呼机发送一个POCSAG页面。最后一个_Page.txt是我用前面的代码创建的文件,它包含我要执行的linux终端命令。创建文本文件的原因是命令中执行的信息的一部分,大约每分钟更新一次。这是写入文本文件的确切文本,以及linux命令的确切结构(包括引号):
sudo RemoteCommand 7642第1246587页“T:91.2,H:42.5,BP:29.39,PA:1551,CF:1.0103,DA:2363,WG:64.93,ET:8.904”
双引号内的信息是每分钟变化的信息,是显示在寻呼机屏幕上的实际页面(它是来自赛车气象站的信息)。如果我删除“with open”和“.read()”行并使用这行代码,它将执行命令并正确发送页面:
stdin, stdout, stderr = client.exec_command('sudo RemoteCommand 7642 page 1246587 "T: 91.2, H: 42.5, BP: 29.39, PA: 1551, CF: 1.0103, DA: 2363, WG: 64.93, ET: 8.904"')
如果我尝试像在原始代码中一样,使用文本文件的“with open”和“.read()”执行命令,则不会发生任何事情。关于如何将频繁更新的信息插入到命令中并使其正确执行,还有其他想法吗
非常感谢您的帮助,
瑞安W
另外,睡眠时间只是给每个进程留出时间来执行,因为Raspberry Pi速度不是很快,并且在没有中断的情况下会出现问题。如果命令有效,如果您将其指定为文字字符串,则您没有/question,但是仅仅是正确读取本地文件的问题——我猜该文件有Windows行结尾,并且由于CR字符,命令失败。谢谢Martin Prikryl。我没想到马车会回来。我会调查的。Ryan W.如果命令有效,如果您将其指定为文字字符串,则您没有/question,而只是在正确读取本地文件时出现问题–我猜该文件有Windows行结尾,并且由于CR字符,该命令失败。谢谢Martin Prikryl。我没想到马车会回来。我会调查的。瑞安W。