zoukankan      html  css  js  c++  java
  • python 读取csv中的文件,从sftp下载文件

    需要从sftp上下载一些图片文件,文件名存放在一个csv文件中。代码如下:

    # -*- coding:utf-8 -*-
    import paramiko
    import csv
    import os
    
    def sft_download_all(host,port,username,password):
        sf = paramiko.Transport((host,port))
        sf.connect(username = username,password = password)
        sftp = paramiko.SFTPClient.from_transport(sf)
    
        csv_reader1=csv.reader(open(r'D:数据处理photo.csv',encoding='utf-8'))
        for row in csv_reader1:
            remote=row[2]
            filename=row[1]
            localfile='D:\训练数据\all\'+filename
            try:
                if sftp.stat(remote) and (not os.path.exists(localfile)):
                    print("download:"+remote)
                    sftp.get(remote,localfile)
            except Exception as e:
                print('出错跳过:file='+remote+' exception:',e)
                continue
        print("全部数据下载完毕!")
    
    def sftp_download(host,port,username,password):
        sf = paramiko.Transport((host,port))
        sf.connect(username = username,password = password)
        sftp = paramiko.SFTPClient.from_transport(sf)
    
        csv_reader1=csv.reader(open(r'D:数据处理系安全带的.csv',encoding='utf-8'))
        for row in csv_reader1:
            remote=row[4]
            filename= os.path.basename(remote)
            localfile='D:\训练数据\hasbelt\'+filename
            try:
                if sftp.stat(remote) and (not os.path.exists(localfile)):
                    print("download:"+remote)
                    sftp.get(remote,localfile)
            except Exception as e:
                print('出错跳过:file='+remote+' exception:',e)
                continue
        print("通过数据下载完毕!")
    
        csv_reader2=csv.reader(open(r'D:数据处理没系安全带.csv',encoding='utf-8'))
        for row in csv_reader2:
            remote=row[4]
            filename= os.path.basename(remote)
            localfile='D:\训练数据\beltno\'+filename
            try:
                if sftp.stat(remote) and (not os.path.exists(localfile)):
                    print("download:"+remote)
                    sftp.get(remote,localfile)
            except Exception as e:
                print('出错跳过:file='+remote+' exception:',e)
                continue
        print("不通过数据下载完毕!")
        sf.close()
    
    if __name__ == '__main__':
        host = '172.16.207.21'#主机
        port = 22 #端口
        username = 'root' #用户名
        password = 'data' #密码
        sftp_download(host,port,username,password)#下载
        #sft_download_all(host,port,username,password)
  • 相关阅读:
    2、netlink简介
    1、netlink 连接器 通信机制
    第一章 02 谈谈static关键词
    第一章 01 namespace 命名空间
    第一章 00 StringUtil.cpp和StringUtil.hh分析
    说说log4cplus
    Jq 操作json
    怪怪的bug,提示值不能为空,连action都不进
    浏览器兼容性部分---FF&IE678
    Jquery 随笔
  • 原文地址:https://www.cnblogs.com/deartear/p/8616457.html
Copyright © 2011-2022 走看看