python实现简单ftp客户端的方法


Posted in Python onJune 28, 2015

本文实例讲述了python实现简单ftp客户端的方法。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import ftplib
import os
import socket
HOST = 'ftp.mozilla.org'
DIRN = 'pub/mozilla.org/webtools'
FILE = 'bugzilla-3.6.9-to-3.6.10-nodocs.diff.gz'
def writedata(data):
  f = open(FILE,'wb')
  try:
    f.write(data)
  finally:
    f.close()
def main():
  try:
    f = ftplib.FTP(HOST)
  except (socket.error, socket.gaierror):
    print 'ERROR:cannot reach " %s"' % HOST
    return
  print '***Connected to host "%s"' % HOST
  try:
    f.login()
  except ftplib.error_perm:
    print 'ERROR: cannot login anonymously'
    f.quit()
    return
  print '*** Logged in as "anonymously"' 
  try:
    f.cwd(DIRN)
  except ftplib.error_perm:
    print 'ERRORL cannot CD to "%s"' % DIRN
    f.quit()
    return
  print '*** Changed to "%s" folder' % DIRN
  try:
    #传一个回调函数给retrbinary() 它在每接收一个二进制数据时都会被调用
    f.retrbinary('RETR %s' %FILE, writedata)
  except ftplib.error_perm:
    print 'ERROR: cannot read file "%s"' %FILE
    os.unlink(FILE)
  else:
    print '*** Downloaded "%s" to CWD' % FILE
  f.quit()
  return
if __name__ == '__main__':
  main()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python常见文件操作的函数示例代码
Nov 15 Python
Python中用format函数格式化字符串的用法
Apr 08 Python
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
Python线程指南详细介绍
Jan 05 Python
深入解答关于Python的11道基本面试题
Apr 01 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
numpy.where() 用法详解
May 27 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
对tensorflow中cifar-10文档的Read操作详解
Feb 10 Python
详解Python设计模式之策略模式
Jun 15 Python
python 8种必备的gui库
Aug 27 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
Feb 25 Python
基于进程内通讯的python聊天室实现方法
Jun 28 #Python
python实现的简单RPG游戏流程实例
Jun 28 #Python
python实现自动登录人人网并采集信息的方法
Jun 28 #Python
Python实现将绝对URL替换成相对URL的方法
Jun 28 #Python
python实现将html表格转换成CSV文件的方法
Jun 28 #Python
python实现根据主机名字获得所有ip地址的方法
Jun 28 #Python
python自动zip压缩目录的方法
Jun 28 #Python
You might like
php数组随机排序实现方法
2015/06/13 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
JS冒泡事件的快速解决方法
2013/12/16 Javascript
js打造数组转json函数
2015/01/14 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
Javascript实现从小到大的数组转换成二叉搜索树
2017/06/13 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
vue登录注册实例详解
2019/09/14 Javascript
Vue $attrs & inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
[52:15]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS LGD-GAMING
2014/05/23 DOTA
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
python 去除txt文本中的空格、数字、特定字母等方法
2018/07/24 Python
python+pygame实现坦克大战
2019/09/10 Python
python mqtt 客户端的实现代码实例
2019/09/25 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
详解python metaclass(元类)
2020/08/13 Python
Pytorch实验常用代码段汇总
2020/11/19 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
伦敦时尚生活的缩影:LN-CC
2017/01/24 全球购物
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
采购员的工作职责
2013/12/26 职场文书
会计与审计毕业生自荐信范文
2013/12/30 职场文书
大学生学习自我评价
2014/01/13 职场文书
《威尼斯的小艇》教学反思
2014/02/17 职场文书
个人收入证明范本
2014/09/18 职场文书
关于Python使用turtle库画任意图的问题
2022/04/01 Python
进行数据处理的6个 Python 代码块分享
2022/04/06 Python