微信号:gh_f3f87778cda3

介绍:专注基于python的运维技术经验分享

自动从搜狐镜像ftp服务器上下载apache文件

2016-01-04 23:33 python运维技术

这几天搭建apache环境,网上搜索找到了mirrors.sohu.com这个站点,内容比较全,也正好练习python 就简答写了个一个ftp下载工具,比较简单,不过满足日常需求是没有任何问题,代码如下:


#!/usr/bin/env python

#This is for python 2.7

import ftplib

FTPSERVER = 'mirrors.sohu.com'

def downfile_conn_ftp(path, username, email):

ftp = ftplib.FTP(path, username, email)

files = ftp.dir()

print files

#download file

ftp.cwd('/apache')

list = ftp.nlst()

#for name in enumerate(list,1):

# print name

#f = open('/tmp/httpd-2.4.12.tar.bz2', 'wb')

#ftp.retrbinary("RETR " + "httpd-2.4.12.tar.bz2", f.write)

outfile = open('/tmp/README.html', 'w')

ftp.retrlines("RETR " + "README.html", lambda s, w=outfile.write: w(s+"\n") )

ftp.quit()

if __name__ == '__main__':

downfile_conn_ftp(path=FTPSERVER, username='anonymous', email='test@163.com')




我稍微解释下代码意思,注释的行不用看,是我测试用的一些代码,ftplib支持2中方式下载,一种是二进制下载,一种ascii文件下载,ftp.retrbinary,方式是二进制下载,ftp.retrlines是ascii下载,我代码用的是ascii文件下载,注释的行可用于二进制文件下载,不用修改,去掉注释即可,这两个函数都需要一个回调函数,就是每行或每个数据块都要经过这个函数处理一下,具体理解看代码执行结果吧,有问题留言,睡觉去喽。




 
python运维技术 更多文章 Django模型1对多和多对多关系 用gunicorn搭建flask运行环境 基于AWS的游戏自动化运维部署 aws s3上传大文件的4种方法 python产生随机密码
猜您喜欢 有梦想,不孤单——首届上海传智杯演讲大赛正式启动! .NET Core 也能玩转 Storm 这绝对是最值得一看的10部黑客电影 PostgreSQL中BRIN和BTREE索引的比较(一) 【R+Spark】通过SparkR在R上运行Spark