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装饰器
May 09 Python
Django查找网站项目根目录和对正则表达式的支持
Jul 15 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
Mar 12 Python
python实现基于信息增益的决策树归纳
Dec 18 Python
在python带权重的列表中随机取值的方法
Jan 23 Python
详解Python:面向对象编程
Apr 10 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 Python
Python三维绘图之Matplotlib库的使用方法
Sep 20 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
如何在向量化NumPy数组上进行移动窗口
May 18 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函数file_get_contents超时处理的方法详解
2013/06/03 PHP
请离开include_once和require_once
2013/07/18 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
微信小程序 checkbox使用实例解析
2019/09/09 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
200行自定义python异步非阻塞Web框架
2017/03/15 Python
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
2018/11/10 Python
浅谈Python_Openpyxl使用(最全总结)
2019/09/05 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
python shell命令行中import多层目录下的模块操作
2020/03/09 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
WINDOWS域的具体实现方式是什么
2014/02/20 面试题
给女儿的表扬信
2014/01/18 职场文书
教导处工作制度
2014/01/18 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
九一八事变演讲稿
2014/09/05 职场文书
上班离岗检讨书
2014/09/10 职场文书
企业党支部工作总结2015
2015/05/21 职场文书
Python3的进程和线程你了解吗
2022/03/16 Python
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技