FTP、SFTP文件下载内容校验
描述:
从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文件下载内容校验的更多相关文章
- 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) 收藏 举 ...
- linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl)
因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...
- linux命令行下的ftp 多文件下载和目录下载
安装:yum install ftp 使用:ftp + ip (未进入ftp状态下运行) ----------------------------------------- 目标ftp服务器是一个非标 ...
- (转)linux命令行下的ftp 多文件下载和目录下载
link:http://yahoon.blog.51cto.com/13184/200991 目标ftp服务器是一个非标准端口的ftp 1.通过shell登录 #ftp //shell下输入 ...
- linux命令行下的ftp 多文件下载和目录下载(转)
目标ftp服务器是一个非标准端口的ftp 1.通过shell登录 #ftp //shell下输入ftp命令,进入到ftp提示符 >open IP PORT //IP ,PORT对 ...
- [转帖]使用Gnome文件管理器连接到服务器:FTP/SFTP、Samba、NFS的方法
使用Gnome文件管理器连接到服务器:FTP/SFTP.Samba.NFS的方法 2019-05-09 16:28:44作者:雷增线稿源:云网牛站 https://ywnz.com/linuxyffq ...
- 【SFTP】使用Jsch实现Sftp文件下载-支持断点续传和进程监控
参考上篇文章: <[SFTP]使用Jsch实现Sftp文件下载-支持断点续传和进程监控>:http://www.cnblogs.com/ssslinppp/p/6248763.html ...
- ftp sftp vsftp
ftp sftp (secure) 是文件传输 协议 vsftp(very secure) 是 ftp 服务端 sftp 是 ssh 的一部分
- 开源FTP/SFTP客户端 FileZilla v3.31.0 绿色便携版
下载地址:点我 基本介绍 FileZilla是一种快速.可信赖的FTP客户端以及服务器端开放源代码程式,具有多种特色.直觉的接口.可控性.有条理的界面和管理多站点的简化方式使得Filezilla客户端 ...
随机推荐
- 关于jsp之间href传参(中文)乱码问题
在A.jsp中有href传值 <a href=\"6.jsp?param="+rs.getString(2)+"\">" 在B.jsp中使 ...
- 引用百度bcebos jar 503问题
最近使用jeecms管理公司各个站点,关于附件部分采用bos进行上传处理. 在引用bosjar的时候,出现503问题,打断点打印异常堆栈信息,也获取不到.后来使用watch,发现BosClientCo ...
- scrum 项目准备2.0
1.确定选题. 应用NABCD模型,分析你们初步选定的项目,充分说明你们选题的理由. 录制为演说视频,上传到视频网站,并把链接发到团队博客上. 截止日期:2016.5.6日晚10点 演说稿: 各位领导 ...
- LR之Java Vuser II
最近项目待压测的服务端协议使用的是java的Netty框架开发,而传输的业务数据使用了google protobuf进行序列化,然后通过tcp数据流与客户端通讯.这一次的压测脚本决定使用LR的java ...
- 在mvc4中上传、导入和导出excel表方法总结
通过excel的导入导出练习,使用NPOI组件还是方便一点,所有下面就以NPOI下的导入导出给出实例,通过网页导入excel表,首先上传,再导入数据到库,这里为了方便就不导入到库中了,直接拿到数据.导 ...
- HDU4258_Covered Walkway
题目是一个很典型的斜率优化的题目.题意就不说了. 是这样的,对于双端优先队列,我们共有队首和队尾两个删除操作,来保证对于任意一个i,第一个元素都是最优的. 我们把dp的转移方程列出来就直达其状态为f[ ...
- ZOJ3067_Nim
题目的意思就不说了,典型的取石子的博弈问题. 题目的前半部分就是赤果果的SG函数值异或就可以了,其中Sg函数值就是石子数本身. 但是接下来有个小变换,就是要你输出先手必胜有多少种不同的取法. 首先要想 ...
- 转---秒杀多线程第十二篇 多线程同步内功心法——PV操作上 (续)
PV操作的核心就是 PV操作可以同时起到同步与互斥的作用. 1.同步就是通过P操作获取信号量,V操作释放信号量来进行. 2.互斥其实就是,同时操作P操作,结束后进行V操作即可做到. Java上实现PV ...
- Python urlparse模块
Python urlparse模块 urlparse 模块简介 urlparse模块用于把url解析为各个组件,支持file,ftp,http,https,imap,mailto,mms,news,n ...
- Codeforces Round #447 (Div. 2) 题解
A.很水的题目,3个for循环就可以了 #include <iostream> #include <cstdio> #include <cstring> using ...