python网络编程之文件下载实例分析


Posted in Python onMay 20, 2015

本文实例讲述了python网络编程之文件下载实现方法。分享给大家供大家参考。具体如下:

真是越看越喜欢python啊,想要了解它提供的http和ftp下载功能,原来是如此的简单。

1、相应模块

ftplib模块定义了FTP类和一些方法,用以进行客户端的ftp编程。我们可用python编写一个自已的ftp客户端程序,用于下载文件或镜像站点。如果想了解ftp协议的详细内容,请参考RFC959或是查看python帮助吧。

Urllib模块提供了非常高级的接口来从网络上抓取数据,主要使用到的是urlopen函数,跟open函数功能比较相似,这里我们要用到urlretrieve()函数来实现从http服务器上下载文件。

2、实例实现FTP下载和上传

from ftplib import FTP
import sys
def ftpdownload(path,file):
  ftp = FTP()
  ftp.set_debuglevel(2)
  #打开调试级别2,显示详细信息
  ftp.connect('**IP**')
  #连接ftp服务器
  ftp.login(user,password)
  #输入用户名和密码
  print ftp.getwelcome()
  #显示ftp服务器的欢迎信息
  ftp.cwd(path)
  #选择操作目录
  bufsize = 1024
  #设置缓冲区大小
  file_handler = open(file,'wb').write
  #以写模式在本地打开文件
  strBuffer = 'RETR ' + file
  ftp.retrbinary(strBuffer,file_handler,bufsize)
  #接收服务器上文件并写入本地文件
  ftp.set_debuglevel(0) #关闭调试
  ftp.quit() #退出ftp服务器
if __name__ == '__main__':
  path1 = 'download/test/'
  file1 = 'test1.rar'
  if len(sys.argv) == 3:
    try:
      ftpdownload(sys.argv[1],sys.argv[2])
      #命令行输入文件在ftp上的路径和文件名,    
    except IOError:
      print "please input the correct path and filename"
  else:
    ftpdownload(path1,file1)

上传文件非常类似,对应的上传函数storbinary。

from ftplib import FTP
import sys,os
def ftpdownload(path,file):
  ftp = FTP()
  ftp.set_debuglevel(2)
  ftp.connect('**IP**')
  ftp.login(user,password)
  print ftp.getwelcome()
  ftp.cwd(path)
  bufsize = 1024
  file_handler = open(file,'rb')
  #读方式打开上传文件
  strBuffer = 'RETR ' + file
  ftp.storbinary(strBuffer,file_handler,bufsize)
  #上传文件
  ftp.set_debuglevel(0) 
  ftp.quit()
if __name__ == '__main__':
  path1 = 'download/test/'
  file1 = '4.jpg'
  if len(sys.argv) == 3:
    try:
      ftpdownload(sys.argv[1],sys.argv[2])      
    except IOError:
      print "please input the correct path and filename"
  else:
    ftpdownload(path1,file1)

3、实例实现HTTP下载

http下载真的是超级简单,一个函数就搞定,这里通过传入要下载的地址下载文件,并计算下载时间,我想的感觉是比较笨的计算时间的方法,不知道谁有高招呢?

import urllib
import sys
def download(url):
  starttime = datetime.datetime.now()
  print 'download start time is %s'% starttime
  urllib.urlretrieve(url,'test.exe')
  #开始下载,test.exe为下载后保存的文件名
  endtime = datetime.datetime.now()
  print 'download end time is %s'% endtime  
  print 'you download the file use time %s s' % (endtime - starttime).seconds
if __name__ == '__main__':
  if len(sys.argv) == 2:
    try:
      download(sys.argv[1])
    except IOError:
      print 'url not found'
  else:
    download('http://www.python.org/')

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

Python 相关文章推荐
详解在Python的Django框架中创建模板库的方法
Jul 20 Python
python开发之基于thread线程搜索本地文件的方法
Nov 11 Python
Flask框架各种常见装饰器示例
Jul 17 Python
Python绘制的二项分布概率图示例
Aug 22 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
Oct 29 Python
python面向对象入门教程之从代码复用开始(一)
Dec 11 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
python获取磁盘号下盘符步骤详解
Jun 19 Python
Python日志syslog使用原理详解
Feb 18 Python
使用pth文件添加Python环境变量方式
May 26 Python
keras的三种模型实现与区别说明
Jul 03 Python
python 图像增强算法实现详解
Jan 24 Python
Python中title()方法的使用简介
May 20 #Python
python中enumerate函数用法实例分析
May 20 #Python
python网络编程之数据传输UDP实例分析
May 20 #Python
在Python中使用swapCase()方法转换大小写的教程
May 20 #Python
python计算时间差的方法
May 20 #Python
python中sys.argv参数用法实例分析
May 20 #Python
python文件操作之目录遍历实例分析
May 20 #Python
You might like
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
php缓存技术介绍
2006/11/25 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
YII实现分页的方法
2014/07/09 PHP
Yii中表单用法实例详解
2016/01/05 PHP
php获取小程序码的实现代码(B类接口)
2020/06/13 PHP
javascript removeChild 使用注意事项
2009/04/11 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
深入理解AngularJs-scope的脏检查(一)
2017/06/19 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
python合并同类型excel表格的方法
2018/04/01 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
Python 读取位于包中的数据文件
2020/08/07 Python
python help函数实例用法
2020/12/06 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
MATCHESFASHION.COM法国官网:英国奢侈品零售商
2018/01/04 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
西安当代医院管理研究院笔试题
2015/12/11 面试题
四川internet信息高速公路(C#)笔试题
2012/02/29 面试题
Linux操作面试题
2012/05/16 面试题
人事主管岗位职责
2014/01/30 职场文书
服务员岗位责任制
2014/02/11 职场文书
入党自荐书范文
2014/03/09 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
2014年纪委工作总结
2014/12/05 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python