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

Python pysftp上传文件报IOError: No such file问题求助

问题分析与解决思路

首先明确:你遇到的IOError: [Errno 2] No such file不是指本地文件不存在,从报错栈的self.stat(remotepath)可以看出,这是pysftp在尝试检查远程SFTP服务器上的目标路径/文件时触发的错误。

解决步骤:

  • 核对远程路径的有效性
    sftp.put的第二个参数"file1.txt"是上传到SFTP服务器的当前工作目录,先确认该目录是否存在、你的账号是否有权限访问:

    with pysftp.connection(host="hostname",username="uname",password="pwd") as sftp:
        print(sftp.pwd())  # 打印当前远程工作目录
        print(sftp.listdir())  # 列出当前目录下的文件/文件夹
    

    如果要上传到指定远程目录,必须写完整路径,比如服务器的/data/uploads目录:

    sftp.put("d://folder1//file1.txt", "/data/uploads/file1.txt")
    

    若目标远程目录不存在,先创建(需确保账号有创建权限):

    sftp.mkdir("/data/uploads")
    
  • 修正本地文件路径的拼写错误
    你的测试代码用的是"d://folder//file1.txt",但上传代码里是"d://folder1//file1.txt",这很可能是笔误。建议用原始字符串避免转义问题,比如:

    sftp.put(r"d:\folder1\file1.txt", "file1.txt")
    
  • 调整上传参数跳过确认检查
    如果远程文件本身不存在(你是第一次上传),pysftp默认的confirm=True会尝试检查远程文件状态,可能触发报错。可以关闭确认:

    sftp.put("d://folder1//file1.txt", "file1.txt", confirm=False)
    
  • 检查SFTP账号权限
    确认你的SFTP账号对目标远程目录有写入权限,即使目录存在,无权限也会触发类似的不存在错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:52:42