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 help()函数用法详解
Mar 11 Python
python模拟鼠标拖动操作的方法
Mar 11 Python
Python编程实现二叉树及七种遍历方法详解
Jun 02 Python
Python实战之制作天气查询软件
May 14 Python
Python线程指南分享
Nov 19 Python
python 图像的离散傅立叶变换实例
Jan 02 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
Feb 20 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
浅谈python 调用open()打开文件时路径出错的原因
Jun 05 Python
Python字典实现伪切片功能
Oct 28 Python
浅析Python模块之间的相互引用问题
Feb 26 Python
Python各协议下socket黏包问题原理
Apr 12 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
JAVA/JSP学习系列之七
2006/10/09 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
自定义php类(查找/修改)xml文档
2013/03/26 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
Javacript实现颜色梯度变化和渐变的效果代码
2013/05/31 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
js将json格式内容转换成对象的方法
2013/11/01 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
ES6学习教程之Map的常用方法总结
2017/08/03 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
小程序跳转到的H5页面再跳转回跳小程序的方法
2020/03/06 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
Python IDLE入门简介
2017/12/08 Python
Python实现识别手写数字 Python图片读入与处理
2020/03/23 Python
python读取xlsx的方法
2018/12/25 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
网站开发实习生的自我评价
2013/12/11 职场文书
公司中秋节活动方案
2014/02/12 职场文书
有兼职工作经历的简历自我评价
2014/03/07 职场文书
教师求职自荐书
2014/06/14 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫
Ruby GDBM操作简介及数据存储原理
2022/04/19 Ruby
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers