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中sets模块的用法实例
Sep 30 Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
python实现数值积分的Simpson方法实例分析
Jun 05 Python
Flask框架的学习指南之用户登录管理
Nov 20 Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 Python
详解python列表(list)的使用技巧及高级操作
Aug 15 Python
Python使用matplotlib实现交换式图形显示功能示例
Sep 06 Python
基于pandas向csv添加新的行和列
May 25 Python
python中plt.imshow与cv2.imshow显示颜色问题
Jul 16 Python
8种常用的Python工具
Aug 05 Python
pytorch训练神经网络爆内存的解决方案
May 22 Python
Python中time与datetime模块使用方法详解
Mar 31 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/03/21 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
jQuery 学习入门篇附实例代码
2010/03/16 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
JavaScript中的this机制
2016/01/30 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
js中获取URL参数的共用方法getRequest()方法实例详解
2018/10/24 Javascript
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
vue $mount 和 el的区别说明
2020/09/11 Javascript
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
python检测是文件还是目录的方法
2015/07/03 Python
python读取图片并修改格式与大小的方法
2018/07/24 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
2018/12/07 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
Keras搭建自编码器操作
2020/07/03 Python
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
优衣库美国官网:UNIQLO美国
2018/04/14 全球购物
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
餐饮采购员岗位职责
2014/03/15 职场文书
班主任寄语大全
2014/04/04 职场文书
促销活动计划书
2014/05/02 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书
Nginx反向代理至go-fastdfs案例讲解
2021/08/02 Servers
vue实现移动端div拖动效果
2022/03/03 Vue.js