• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python使用sftp实现上传和下载功能

    在Python中可以使用paramiko模块中的sftp登陆远程主机,实现上传和下载功能。

    1.功能实现

    1、根据输入参数判断是文件还是目录,进行上传和下载
    2、本地参数local需要与远程参数remote类型一致,文件以文件名结尾,目录以\结尾
    3、上传和下载的本地和远程目录需要存在
    4、异常捕获

    2.代码实现

    #!/usr/bin/python
    # coding=utf-8
    
    import paramiko
    import os
    
    def sftp_upload(host,port,username,password,local,remote):
        sf = paramiko.Transport((host,port))
        sf.connect(username = username,password = password)
        sftp = paramiko.SFTPClient.from_transport(sf)
        try:
            if os.path.isdir(local):#判断本地参数是目录还是文件
                for f in os.listdir(local):#遍历本地目录
                    sftp.put(os.path.join(local+f),os.path.join(remote+f))#上传目录中的文件
            else:
                sftp.put(local,remote)#上传文件
        except Exception,e:
            print('upload exception:',e)
        sf.close()
    
    def sftp_download(host,port,username,password,local,remote):
        sf = paramiko.Transport((host,port))
        sf.connect(username = username,password = password)
        sftp = paramiko.SFTPClient.from_transport(sf)
        try:
            if os.path.isdir(local):#判断本地参数是目录还是文件
                for f in sftp.listdir(remote):#遍历远程目录
                     sftp.get(os.path.join(remote+f),os.path.join(local+f))#下载目录中文件
            else:
                sftp.get(remote,local)#下载文件
        except Exception,e:
            print('download exception:',e)
        sf.close()
    
    if __name__ == '__main__':
        host = '192.168.1.2'#主机
        port = 22 #端口
        username = 'root' #用户名
        password = '123456' #密码
        local = 'F:\\sftptest\\'#本地文件或目录,与远程一致,当前为windows目录格式,window目录中间需要使用双斜线
        remote = '/opt/tianpy5/python/test/'#远程文件或目录,与本地一致,当前为linux目录格式
        sftp_upload(host,port,username,password,local,remote)#上传
        #sftp_download(host,port,username,password,local,remote)#下载

    3.总结

    以上代码实现了文件和目录的上传和下载,可以单独上传和下载文件,也可以批量上传和下载目录中的文件,基本实现了所要的功能,但是针对目录不存在的情况,以及上传和下载到多台主机上的情况,还有待完善。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • 用Python实现一个简单的能够上传下载的HTTP服务器
    • python实现上传下载文件功能
    • python实现支持目录FTP上传下载文件的方法
    • python实现的简单FTP上传下载文件实例
    • Python使用sftp实现上传和下载功能(实例代码)
    • 使用Python操作FTP实现上传和下载的方法
    • python3 requests库文件上传与下载实现详解
    • python ftp 按目录结构上传下载的实现代码
    • 基于python实现FTP文件上传与下载操作(ftp&sftp协议)
    • 完美解决python针对hdfs上传和下载的问题
    上一篇:python selenium实现智联招聘数据爬取
    下一篇:Python基础详解之列表复制
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python使用sftp实现上传和下载功能 Python,使用,sftp,实现,上传,