Python 3.8 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

我对使用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_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。