You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Paramiko调用SFTPClient.get报错FileNotFoundError找不到远程文件如何解决

问题根因

你使用的paramiko.SFTPClient.get()方法的参数顺序完全颠倒,且远程路径配置错误,是触发报错的核心原因:

  • sftp.get(remotepath, localpath)的入参规则是:第一个参数为树莓派(远程设备)上的目标文件路径,第二个参数为运行当前代码的本地设备要保存文件的路径
  • 你代码中将远程路径设为了根目录/,又把树莓派上的文件路径填到了本地路径的位置:如果你是在其他设备(非树莓派)运行代码,本地设备不存在/home/pi/Code这个路径,自然会抛出文件不存在错误。
修正后的代码
import paramiko
paramiko.util.log_to_file("paramiko.log")

# 替换为你实际的树莓派IP地址
RECV_IP_ADDRESS = "192.168.x.x"
host, port = RECV_IP_ADDRESS, 22
transport = paramiko.Transport((host, port))

# 认证信息
username, password = "pi", "raspberry"
transport.connect(None, username, password)
sftp = paramiko.SFTPClient.from_transport(transport)

# 路径配置:注意参数顺序
remote_filepath = "/home/pi/Code/log.txt" # 树莓派上的文件路径
local_savepath = "./log.txt" # 本地保存路径,可根据自己的设备修改
sftp.get(remote_filepath, local_savepath)

# 关闭连接
if sftp: sftp.close()
if transport: transport.close()
疑问解答
  • 无需在树莓派上额外运行其他程序,只要确保树莓派开启了SSH服务即可。如果未开启,可在树莓派终端执行sudo raspi-config,在「Interface Options」中开启SSH功能。
  • Paramiko确实是SSH/SFTP协议的封装工具,服务端只要支持标准SSH协议即可正常使用,不需要额外部署组件。

内容的提问来源于stack exchange,提问作者Lyra Orwell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:54:03