Python:将CSV文件从一个RPi复制到另一个RPi

时间:2017-08-05 21:08:56

标签: python ssh

我有2个Raspberry Pi' 3,运行 Ubuntu Mate 。 在每个RPi上都有一个要读取或复制的CSV文件(取决于它是否掌握)。

python代码在RPI#1上运行,需要从RPi#2复制文件(并将其作为本地文件读取)。

如何通过SSH进行操作?

2 个答案:

答案 0 :(得分:2)

选项太多。但总的来说,除非你有充分的理由不这样做,否则我会退出:

import subprocess
result = subprocess.run(['ssh', 'dude@otherpi', 'cat /var/lol/cats.csv'], stdout=subprocess.PIPE)
result.check_returncode()
cats_csv = result.stdout

我们告诉Python运行此命令:ssh dude@otherpi "cat /var/lol/cats.csv"。因此,ssh进程将连接到dude@otherpi并在远程上运行命令cat /var/lol/cats.csv。您可以通过在shell中运行该行来尝试此操作。 Python捕获此命令的输出,我们要使用stdout=subprocess.PIPE对其进行配置。对check_returncode的调用只是在出现问题时中止,例如连接错误或找不到文件。

您可以复制它,然后在本地打开它,而不是immediatley捕获整个CSV。这将允许处理大文件。然后命令将是['rsync', 'dude@otherpi:/var/lol/cats.csv', '/tmp/cats.csv']。如果scp不可用,请使用rsync

答案 1 :(得分:1)

另一个有用的方法,因为它不是一个大文件 - 将它复制到本地RPi。

 result=subprocess.run(['scp','guy@192.168.2.112:/home/guy/PythonProjects/schedule.csv','/home/guy/schedule_192.168.2.112.csv'],stdout=subprocess.PIPE)