paramiko下载文件报错:PermissionError: [Errno 13] Permission denied:
paramiko从服务器下载文件,代码如下:
import paramiko import os from stat import S_ISDIR as isdir def down_from_remote(sftp_obj, remote_dir_name, local_dir_name): """远程下载文件""" remote_file = sftp_obj.stat(remote_dir_name) if isdir(remote_file.st_mode): # 文件夹,不能直接下载,需要继续循环 check_local_dir(local_dir_name) print('开始下载文件夹:' + remote_dir_name) for remote_file_name in sftp.listdir(remote_dir_name): sub_remote = os.path.join(remote_dir_name, remote_file_name) sub_remote = sub_remote.replace('\\', '/') sub_local = os.path.join(local_dir_name, remote_file_name) sub_local = sub_local.replace('\\', '/') down_from_remote(sftp_obj, sub_remote, sub_local) else: # 文件,直接下载 print('开始下载文件:' + remote_dir_name) sftp.get(remote_dir_name, local_dir_name) def check_local_dir(local_dir_name): """本地文件夹是否存在,不存在则创建""" if not os.path.exists(local_dir_name): os.makedirs(local_dir_name) if __name__ == "__main__": """程序主入口""" # 服务器连接信息 host_name = '192.103.51.11' user_name = 'test' password = '123456' port = 22 # 远程文件路径(需要绝对路径) remote_dir = '/home/test/syslogin.log' # 本地文件存放路径(绝对路径或者相对路径都可以) local_dir = r'D:\mypython\test' # 连接远程服务器 t = paramiko.Transport((host_name, port)) t.connect(username=user_name, password=password) sftp = paramiko.SFTPClient.from_transport(t) # 远程文件开始下载 down_from_remote(sftp, remote_dir, local_dir) # 关闭连接 t.close()
报错:
PermissionError: [Errno 13] Permission denied:
查看官方文档
get(remotepath, localpath=None, callback=None, preserve_mtime=False)
注意:这里的remotepath和localpath为:“文件所在目录 + '/' + 文件名”这样形式的完整的文件路径,而不是只有文件的目录
put(localpath, remotepath=None, callback=None, confirm=True, preserve_mtime=False)
注意:这里的remotepath和localpath为:“文件所在目录 + '/' + 文件名” 完整的文件路径,不是只有文件的目录
解决:
local_dir = r'D:\mypython\test\syslogin.log'
但行好事,莫问前程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了