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

使用Paramiko下载含反斜杠和空格文件名时提示“No such file”

解决Paramiko SFTP下载含特殊字符文件的FileNotFoundError问题

问题根源

你代码里的反斜杠是Python的转义字符,导致传递给sftp.get()的路径和服务器上的真实文件路径不匹配:

  • 若用\ 处理空格,Python会把\ 解析成单个空格,若服务器文件名本身带反斜杠(比如hello\ world.txt),这种写法会丢失反斜杠字符;
  • 若服务器文件名仅含空格,错误添加的反斜杠会让路径多一个额外的反斜杠字符,导致找不到文件。

解决方法

分两种场景处理:

场景1:服务器文件名仅含空格(如second file.txt)

直接在字符串中写空格即可,无需添加反斜杠:

remote_path = "/home/user/second file.txt"
local_path = "/home/localuser/second file.txt"
sftp.get(remote_path, local_path)

或者用原始字符串(避免转义干扰):

remote_path = r"/home/user/second file.txt"
local_path = r"/home/localuser/second file.txt"

场景2:服务器文件名含反斜杠+空格(如hello\ world.txt)

需要正确表示反斜杠字符,两种方式可选:

  • 方式一:用双反斜杠转义
remote_path = "/home/user/hello\\ world.txt"
local_path = "/home/localuser/hello\\ world.txt"
  • 方式二:用原始字符串前缀r
remote_path = r"/home/user/hello\ world.txt"
local_path = r"/home/localuser/hello\ world.txt"

额外提示

  • 原始字符串(r"")会保留所有字符,不会解析转义序列,是处理特殊路径的最优选择;
  • 可以先通过sftp.listdir("/home/user")查看目标目录下的文件名,确认路径拼写完全匹配。

内容的提问来源于stack exchange,提问作者A Little Coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:55:12