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开发之快速搭建自动回复微信公众号功能
Apr 22 Python
Python给你的头像加上圣诞帽
Jan 04 Python
python获取程序执行文件路径的方法(推荐)
Apr 26 Python
python绘制地震散点图
Jun 18 Python
python3 webp转gif格式的实现示例
Dec 10 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
python中for in的用法详解
Apr 17 Python
自学python用什么系统好
Jun 23 Python
pytorch 限制GPU使用效率详解(计算效率)
Jun 27 Python
python实现发送邮件
Mar 02 Python
Pytorch 如何实现常用正则化
May 27 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 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获取文件后缀名的三个函数
2012/10/15 PHP
php实现仿写CodeIgniter的购物车类
2015/07/29 PHP
php引用和拷贝的区别知识点总结
2019/09/23 PHP
laravel 模型查询按照whereIn排序的示例
2019/10/16 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
如何高效率去掉js数组中的重复项
2016/04/12 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
关于vuex的学习实践笔记
2017/04/05 Javascript
完美解决浏览器跨域的几种方法(汇总)
2017/05/08 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
node文件上传功能简易实现代码
2017/06/16 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
解决vue 打包发布去#和页面空白的问题
2018/09/04 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
npm的lock机制解析
2019/06/20 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
Python3基础教程之递归函数简单示例
2019/06/07 Python
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
为什么要用EJB
2014/04/17 面试题
心理学专业毕业生推荐信范文
2013/11/21 职场文书
2014年网管工作总结
2014/12/11 职场文书
2015社区个人工作总结范文
2015/05/13 职场文书
预备党员入党思想汇报(范文)
2019/08/14 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang