位置: 编程技术 - 正文

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绘图)

  • 建筑业普票和专票的比例
  • 资产负债表其他流动资产包括什么
  • 金税盘怎样查询已开发票明细
  • 小规模纳税人实收资本
  • 单位承担的社保费用计入应付职工薪酬科目吗
  • 劳务成本算营业成本吗
  • 土地所有权可以出资吗
  • 行政事业单位盘亏或毁损的固定资产
  • 停工损耗会计分录怎么写
  • 单位租个人房屋怎么开票
  • 分次缴纳的注册资本入什么科目?
  • 享受所得税减免优惠的生产性外商投资企业包括
  • 押金放到哪个会计科目
  • 销售礼盒增值税税率
  • 小规模纳税人收入超过500万怎么办
  • 税收奖励计入什么科目
  • 旅游企业小规模纳税人差额征收
  • 小规模纳税人增值税超过30万怎么纳税
  • 电子普通发票进什么科目
  • 土地在会计中怎么处理
  • 企业车辆保险费要按什么交印花税的
  • 已经发货了点击确认收货可以吗?
  • 受托方委托加工费会计分录
  • excel中在多个单原格中输入相同数据
  • 收到收据的会计分录
  • 买入投资性房地产的会计处理
  • 一般纳税人如何计算企业所得税
  • wordpress 常用函数
  • 无产权买卖
  • PHP:session_set_save_handler()的用法_Session函数
  • cda是什么文件格式
  • 后端返回pdf文件地址,前端怎么渲染到页面
  • yii gridview
  • 修改配置文件是什么意思
  • 想做酒水批发的生意怎么做?
  • php验证码识别
  • 计提下月工资怎么算
  • docker部署webdav
  • zend framework手册
  • load命令怎么用
  • 客服部门发生的费用
  • 怎么查看python
  • phpcms文档
  • mongodb bi
  • mongodb修改命令
  • 坏账计提方法会计政策
  • 如何恢复sql数据库
  • MySQL 5.7 create VIEW or FUNCTION or PROCEDURE
  • 地方水利建设基金减免政策2023
  • 企业不需要交残保金吗
  • 现金比率合适范围
  • 税务局退回来的附加税金怎么做账
  • 部门召开会议
  • 购买税控盘的账务处理
  • 以前年度损益调整是什么意思
  • 抵账的房子怎么办理房产证
  • 专利转让费一般是多少
  • 先收款次月发票怎么做账
  • 高新企业研发费用会计分录
  • 回购股票并注销是利好吗
  • 未认证的进项税额转出会计分录
  • 二手车融资租赁被骗怎么投诉
  • 制造费用会计科目
  • mysql集群原理详解
  • sqlserver 自动备份所有数据库的SQL
  • mac怎样下载
  • windows打不开添加打印机
  • wray是什么意思
  • xp局域网文件共享设置
  • windows10磁盘100%占用解决
  • js小球与边框碰撞反弹
  • bootstrap table edit
  • unity控制组件开关
  • javascript+
  • 请问在javascript程序中
  • android 子线程间通信
  • 如何用js动态创建div
  • 火车票抵扣申报表怎么填
  • 电池涂料消费税问题
  • 社保在哪里缴费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设