【问题标题】:Python Paramiko, PermissionError: [Errno 13] Permission denied when get files from remote serverPython Paramiko,PermissionError:[Errno 13] 从远程服务器获取文件时权限被拒绝
【发布时间】:2018-12-13 10:56:58
【问题描述】:
import paramiko, os
paramiko.util.log_to_file('E:\Automation\paramiko.log')
from stat import S_ISDIR
host = "xx.xx.xxx.xxx"
port = 22
transport = paramiko.Transport((host, port))
password = "password"
username = "username"
#transport.set_missing_host_key_policy(paramiko.AutoAddPolicy())
transport.connect(username = username, password = password)
sftp = paramiko.SFTPClient.from_transport(transport)

def sftp_walk(remotepath):
    path=remotepath
    files=[]
    folders=[]
    for f in sftp.listdir_attr(remotepath):
        if S_ISDIR(f.st_mode):
            folders.append(f.filename)
        else:
            files.append(f.filename)
    if files:
        yield path, files
    for folder in folders:
        new_path=os.path.join(remotepath,folder)
        for x in sftp_walk(new_path):
            yield x


for path,files  in sftp_walk("." or '/SourceData/CSV.EXTRACT/'):
    for file in files:
        sftp.get(os.path.join(os.path.join(path,file)), 'E:\InsightImport\CSV_EXTRACT')
E:\Automation>python dw.export.py
Traceback (most recent call last):
  File "dw.export.py", line 33, in <module>
    sftp.get(os.path.join(os.path.join(path,file)), 'E:\InsightImport\CSV_EXTRAC
  File "C:\Users\svc-cbsbir\AppData\Local\Programs\Python\Python37\lib\site-pack
    with open(localpath, "wb") as fl:
PermissionError: [Errno 13] Permission denied: 'E:\\InsightImport\\CSV_EXTRACT'

【问题讨论】:

    标签: python sftp paramiko


    【解决方案1】:

    SFTPClient.get 的第二个参数是本地文件 的路径。虽然您似乎将路径传递到 目录

    此外,您不应在 SFTP 路径上使用 os.path.joinos.path.join 用于 本地 路径。 SFTP 始终使用 forward 斜杠,而 os.path.join 使用本地操作系统特定的分隔符(back Windows 上的斜杠)。

    sftp.get(path + '/' + file, os.path.join('E:\InsightImport\CSV_EXTRACT', file))
    

    (或者你可以使用PosixPath

    【讨论】:

      猜你喜欢
      • 2013-05-31
      • 1970-01-01
      • 2015-07-17
      • 2016-07-25
      • 2018-11-18
      • 1970-01-01
      • 2020-07-01
      • 2016-11-12
      • 2019-11-09
      相关资源
      最近更新 更多