描述:

从FTP、SFTP下载的文件做MD5码校验,文件名和MD5码值存放在表格里,表格位置在FTP、SFTP服务器上。

os模块只能遍历本地目录/文件,需要先连接FTP、SFTP服务器,将表格下载到本地localpath,再将localpath传入exl_file_md5()函数,读取表格内容

1、python连接FTP、SFTP遍历目录;

2、下载目录下的Excel文件,并读取Excel文件内容,获取到Excel里的文件名和MD5码值;

3、将表格中读取出的内容以字典形式{filename:MD5}返回。

import paramiko
import xlrd
from ftplib import FTP def sftp_down_exlfile(user,password,host,port,remotepath,localpath):
t=paramiko.Transport((host,int(port)))
t.connect(username=user,password=password)
sftp=paramiko.SFTPClient.from_transport(t)
local_path=""
for file in sftp.listdir(remotepath):
if file[-:]==".xlsx":
sftp.get(os.path.join(remotepath+file),os.path.join(localpath+file))
local_path = os.path.join(localpath+file)
t.close()
data=exl_file_md5(local_path)
return data
def ftp_down_exlfile(user,password,host,port,remotepath,localpath):
ftp=FTP()
ftp.connect(host=host,port=int(port))
ftp.login(user=user,passwd=password)
bufsize=
files=ftp.nlst(remotepath)
ftp.cwd(remotepath)  # 切换目录,注:切换到下载的文件的远程目录
for file in files:
if file[-:]==".xlsx":
fp=open(localpath,'wb')
ftp.retrbinary('RETR '+file, fp.write, bufsize)
fp.close()
ftp.close()
data=exl_file_md5(localpath)
return data def exl_file_md5(exlpath):
"""
read Excel filename and MD5code
"""
try:
excel=xlrd.open_workbook(exlpath)
sheet=excel.sheets()[]
nrows=sheet.nrows
file_md5 = {}
for i in range(nrows):
file_md5[sheet.row_values(i)[]] = sheet.row_values(i)[]return file_md5
except Exception:
pass

FTP、SFTP文件下载内容校验的更多相关文章

  1. linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl)(zz)

    linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl) 分类: linux2011-10-10 13:21 8773人阅读 评论(1) 收藏 举 ...

  2. linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl)

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

  3. linux命令行下的ftp 多文件下载和目录下载

    安装:yum install ftp 使用:ftp + ip (未进入ftp状态下运行) ----------------------------------------- 目标ftp服务器是一个非标 ...

  4. (转)linux命令行下的ftp 多文件下载和目录下载

    link:http://yahoon.blog.51cto.com/13184/200991 目标ftp服务器是一个非标准端口的ftp   1.通过shell登录 #ftp    //shell下输入 ...

  5. linux命令行下的ftp 多文件下载和目录下载(转)

    目标ftp服务器是一个非标准端口的ftp   1.通过shell登录 #ftp    //shell下输入ftp命令,进入到ftp提示符 >open IP  PORT   //IP ,PORT对 ...

  6. [转帖]使用Gnome文件管理器连接到服务器:FTP/SFTP、Samba、NFS的方法

    使用Gnome文件管理器连接到服务器:FTP/SFTP.Samba.NFS的方法 2019-05-09 16:28:44作者:雷增线稿源:云网牛站 https://ywnz.com/linuxyffq ...

  7. 【SFTP】使用Jsch实现Sftp文件下载-支持断点续传和进程监控

    参考上篇文章: <[SFTP]使用Jsch实现Sftp文件下载-支持断点续传和进程监控>:http://www.cnblogs.com/ssslinppp/p/6248763.html  ...

  8. ftp sftp vsftp

    ftp  sftp (secure)  是文件传输 协议 vsftp(very secure) 是 ftp 服务端 sftp 是 ssh 的一部分

  9. 开源FTP/SFTP客户端 FileZilla v3.31.0 绿色便携版

    下载地址:点我 基本介绍 FileZilla是一种快速.可信赖的FTP客户端以及服务器端开放源代码程式,具有多种特色.直觉的接口.可控性.有条理的界面和管理多站点的简化方式使得Filezilla客户端 ...

随机推荐

  1. Python:元组操作总结

    Python的元组和列表类似,不同之处在于元组中的元素不能修改(因此元组又称为只读列表),且元组使用小括号而列表使用中括号,如下: tup1=('physics','chemistry',1997,2 ...

  2. .net学习-扩展

    uwp uwpapp-斗鱼,微信等 云和移动优先 远程桌面连接设置 teamviewer V8内核 Node.js javascript 事件循环 express框架 bootstrap NoSQL ...

  3. sql高级主题资料(网络复制)

    SQL Server 常用高级语法笔记   自从用了EF后很少写sql和存储过程了,今天需要写个比较复杂的报告,翻出了之前的笔记做参考,感觉这个笔记还是很有用的,因此发出来和大家分享. 1.case. ...

  4. TCP系列43—拥塞控制—6、Congestion Window Validation(CWV)

    一.概述 在RFC2861中,区分了TCP连接数据传输的三种状态   After sending a data segment:       If tcpnow - T_last >= RTO ...

  5. SpringMVC项目中获取所有URL到Controller Method的映射

    Spring是一个很好很强大的开源框架,它就像是一个容器,为我们提供了各种Bean组件和服务.对于MVC这部分而言,它里面实现了从Url请求映射控制器方法的逻辑处理,在我们平时的开发工作中并不需要太多 ...

  6. 把握曝光三要素(上):快门、光圈、ISO

    概要: 如果你还没有掌握快门.光圈和ISO,那这篇文章或许对你有所帮助! 把照片比作水池.把进光量比作水.把快门比作关闭水龙头的速度.把光圈比作水龙头的大小.把感光度ISO比作水龙头的滤网,这就变得好 ...

  7. linux php 访问sql server设置

    1.安装freeTDS wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-stable.tgz 1.1.进入到你下载的目录然后解压.tar - ...

  8. Spring Cloud 架构 五大神兽的功能

    什么是微服务 微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microservices”. 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调 ...

  9. python之enumerate()学习

    X = 'abcdefghijklmn' for (index,char) in enumerate(X): print (index, char) 利用enumerate()函数,可以在每次循环中同 ...

  10. caffe框架下目标检测——faster-rcnn实战篇问题集锦

    1.问题 解决方案:没编译好,需要在lib下编译make 需要在caffe-fast-rcnn下编译make或者make all -j16  ,还需要make pycaffe 2.问题 解决方案:/p ...