位置: 编程技术 - 正文

Python实现多线程HTTP下载器示例(python多线程怎么写)

编辑:rootadmin

推荐整理分享Python实现多线程HTTP下载器示例(python多线程怎么写),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python 多线程,python 多线程,python 多线程,python,多线程,python,多线程,python多线程怎么用,python 多线程,python如何多线程,内容如对您有帮助,希望把文章链接给更多的朋友!

本文将介绍使用Python编写多线程HTTP下载器,并生成.exe可执行文件。

环境:windows/Linux + Python2.7.x

单线程

在介绍多线程之前首先介绍单线程。编写单线程的思路为:

1.解析url;

2.连接web服务器;

3.构造http请求包;

4.下载文件。

接下来通过代码进行说明。

解析url

通过用户输入url进行解析。如果解析的路径为空,则赋值为'/';如果端口号为空,则赋值为"”;下载文件的文件名可根据用户的意愿进行更改(输入'y'表示更改,输入其它表示不需要更改)。

下面列出几个解析函数:

连接web服务器

使用socket模块,根据解析url得到的host和port连接web服务器,代码如下:

构造http请求包

根据解析url得到的path, host, port构造一个HTTP请求包。

Python实现多线程HTTP下载器示例(python多线程怎么写)

下载文件

根据构造的http请求包,向服务器发送文件,抓取响应报文头部的"Content-Length"。

下载文件并计算下载所用的时间。

多线程

抓取响应报文头部的"Content-Length"字段,结合线程个数,加锁分段下载。与单线程的不同,这里将所有代码整合为一个文件,代码中使用更多的Python自带模块。

得到"Content-Length":

根据得到的Length,结合线程个数划分范围:

实现多线程下载,在向文件写入内容时,向线程加锁,并使用with lock代替lock.acquire( )...lock.release( );使用file.seek( )设置文件偏移地址,保证写入文件的准确性。

运行结果:

将(*.py)文件转化为(*.exe)可执行文件

当写好了一个工具,如何让那些没有安装Python的人使用这个工具呢?这就需要将.py文件转化为.exe文件。

这里用到Python的py2exe模块,初次使用,所以对其进行介绍:

py2exe是一个将Python脚本转换成windows上可独立执行的可执行文件(*.exe)的工具,这样,就可以不用装Python在windows上运行这个可执行程序。

接下来,在multiThreadDownload.py的同目录下,创建mysetup.py文件,编写:

接着执行命令:Python mysetup.py py2exe

生成dist文件夹,multiTjhreadDownload.exe文件位于其中,点击运行即可:

demo下载地址:HttpFileDownload_gimoo.rar

标签: python多线程怎么写

本文链接地址:https://www.jiuchutong.com/biancheng/380063.html 转载请保留说明!

上一篇:Python pip安装lxml出错的问题解决办法(python-pip安装)

下一篇:Python 绘图和可视化详细介绍(利用python绘图)

  • 税务局退回个税手续费会计分录
  • 价税分离合同印花税的计税依据怎么算
  • 甲方代扣水电费怎么做账
  • 小规模纳税人水利基金怎么报税
  • 企业资产损失所得税税前扣除办法
  • 发票加盖公章有用吗
  • 非货币性资产投资个人所得税
  • 企业税收标准是多少
  • 只有利息费用的财务费用如何结转?
  • 电子商业承兑汇票
  • 个人劳务费可以不开发票吗
  • 股票价格变化的原因
  • 个人借支备用金限额
  • 多交的增税怎么做账
  • 生产酒的税收是多少
  • 公司员工补充医疗保险方案
  • 小型微利企业普惠性税收减免政策执行期限
  • 浏览器标签栏
  • 月末一次加权平均法是什么意思
  • 个税是什么意思必须交吗
  • win11怎么用win10界面
  • php中this的用法
  • php string
  • picfile什么意思
  • 债务重组账务处理会计分录
  • 别人利息没给怎么发问
  • 增值税中非经营活动包括哪些
  • 长期待摊费用如何结转
  • windows7使用方法
  • 对数组描述正确的是
  • 黄金期货交易进场规则
  • 最薄的电视机是多厚
  • 开发票为什么要对公账户?
  • 一般纳税人在什么情况下,不可以开具增值税专用发票
  • php构造函数重载
  • 优化in
  • 工会经费计提基数包括绩效工资吗
  • 漏记收入 罚款
  • php禁用system用什么绕过
  • 管理费用抵消分录
  • 软件公司股权
  • 保险经纪公司要提取风险准备金按什么规定
  • 股东分红方式如何约定
  • 合伙企业所得税征收方式
  • 如何免费用别人家的wifi
  • 电子税务局是指什么意思
  • 加盟费明细
  • 营改增后服务业账务处理
  • 银行卡定期存款怎么取出来
  • 因管理不善的材料怎么办
  • 发给客户的红包是什么费用
  • 资产处置损益借贷方向表示什么
  • 事业单位残疾人就业保障金减免
  • 劳务费差额征税的账务处理
  • 汇算清缴资产总额全年季度平均值怎么算
  • 医院会计怎么做账
  • 制造费用不结转成本 报表平吗
  • 建账需要准备什么东西
  • sql函数使用
  • win10系统微软
  • fat32转换为ntfs分区命令
  • Mac Chrome打开HTTPS证书错误问题解决方法
  • windows10地图用不了
  • unity3d怎么编程
  • cocos2dx schedule
  • Extjs中DisplayField的日期或者数字格式化扩展
  • js抓取网页内容
  • 学习标准——笔记
  • angularjs2
  • ftp自动上传脚本怎么用
  • android 左右滑动 库
  • 安卓手机查看sd卡
  • jquery教程与例子
  • asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
  • jQuery easyUI datagrid 增加求和统计行的实现代码
  • 网上申报增值税纳税申报表怎么填写
  • 国地税改革意义
  • 税务注销相关文件
  • 北京市门头沟最西边有个塔子叫什么
  • 国家土地征收管理办法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设