python连接sftp下载文件及文件夹

# coding=utf-8
import paramiko
import os

def DownLoadFile(sftp,LocalFile,RemoteFile):  # 下载当个文件
    file_handler = open(LocalFile, 'wb')
    print(file_handler)
    sftp.get(RemoteFile, LocalFile)  # 下载目录中文件
    file_handler.close()
    return True

def DownLoadFileTree(sftp, LocalDir, RemoteDir):  # 下载整个目录下的文件
    if not os.path.exists(LocalDir):
        os.makedirs(LocalDir)
    for file in sftp.listdir(RemoteDir):
        Local = os.path.join(LocalDir, file)
        Remote=os.path.join(RemoteDir, file)
        if file.find(".") == -1:#判断是否是文件
            if not os.path.exists(Local):
                os.makedirs(Local)
            DownLoadFileTree(sftp,Local, Remote)
        else:#文件
            DownLoadFile(sftp,Local, Remote)
    return "complete"

if __name__ == '__main__':
  host = ' '#主机
  port =  #端口
  username = '' #用户名
  password = '' #密码
  sf = paramiko.Transport((host, port))
  sf.connect(username=username, password=password)
  sftp = paramiko.SFTPClient.from_transport(sf)
  local = 'D:\datadisk2_hdf5'#本地文件
  remote = '\SH-2-0'#远程文件或目录
  DownLoadFileTree(sftp,local,remote)#下载

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Python中遍历SFTP(SSH文件传输协议)文件夹下的文件,你可以使用Paramiko库。Paramiko是一个用于SSH协议的Python实现,可以用于连接和操作远程服务器。 以下是一个示例代码,用于遍历SFTP文件夹下的所有文件: ```python import paramiko def traverse_sftp_files(host, port, username, password, folder_path): # 创建SSH客户端 ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接SFTP服务器 ssh.connect(host, port=port, username=username, password=password) sftp = ssh.open_sftp() # 遍历文件夹 for file_name in sftp.listdir(folder_path): file_path = folder_path + '/' + file_name if sftp.isfile(file_path): print(file_path) # 可以根据需要进行操作,比如下载文件或进行其他处理 # 关闭SFTP连接和SSH会话 sftp.close() ssh.close() # 示例用法 host = 'your_sftp_host' port = 22 # 默认为22,如果端口号不同,请替换为实际的端口号 username = 'your_username' password = 'your_password' folder_path = '/path/to/folder' # 替换为你要遍历的SFTP文件夹路径 traverse_sftp_files(host, port, username, password, folder_path) ``` 你需要将`your_sftp_host`替换为实际的SFTP主机地址,`your_username`和`your_password`替换为实际的SFTP登录凭据,以及`/path/to/folder`替换为要遍历的SFTP文件夹路径。代码将会打印出SFTP文件夹下所有文件的路径。你可以根据需要在`traverse_sftp_files`函数中进行其他操作,比如下载文件或进行其他处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值