首页 > 其他 > 详细

paramiko下载文件报错:PermissionError: [Errno 13] Permission denied:

时间:2020-06-15 23:58:10      阅读:227      评论:0      收藏:0      [点我收藏+]

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 = rD:\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‘


paramiko下载文件报错:PermissionError: [Errno 13] Permission denied:

原文:https://www.cnblogs.com/mingfan/p/13138448.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!