首页 > 解决方案 > 使用 python 从 SSH 服务器上传文件(PyAutoIt 的替代品)

问题描述

我找到了一个小脚本,可以在资源管理器中选择数据以使用 PyAutoIt 上传。脚本如下所示:

autoit.win_active("Open") 
sleep(2)
autoit.control_send("Open","Edit1",data_path) 
sleep(1.5)
autoit.control_send("Open","Edit1","{ENTER}")

我想做同样的事情,但是来自我的 Debian GNU/Linux SSH 服务器。问题是 PyAutoIt 仅适用于 Windows。是否有任何有据可查的替代方案可供我用来执行相同的操作?

标签: pythonsshupload

解决方案


您可以使用本机 python 和 scp

import subprocess
# Use subprocess to run 'scp' take FILE and pass it to the ssh host
subprocess.run(["scp", FILE, "USER@SERVER:PATH"])
#e.g. subprocess.run(["scp", "somefile.txt", "john@doe.org:/path/to/somefile.txt"])

请注意,您必须生成一个 ssh 密钥,以便 scp 自动获得身份验证 - 这样您就不会被要求提供密码。

或者你可能会这样做(我没有测试过这个)

import subprocess
# Use subprocess to run 'scp' take FILE and pass it to the ssh host
subprocess.run(["scp", FILE, "USER:PASSWORD@SERVER:PATH"])
#e.g. subprocess.run(["scp", "somefile.txt", "john:secretpassword@<IPADDRESSorDNSNAME>:/path/to/somefile.txt"])

推荐阅读