位置: 编程技术 - 正文

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

  • 进项税额转出需要结转吗
  • 增值税电子普票没有电子章有效吗
  • 玉米大量收购
  • 分公司开专票需要缴税
  • 老板住酒店的住宿费发票入什么会计科目
  • 库存商品在贷方怎么调整
  • 一般纳税人必须先有进项才能开出来发票吗
  • 企业合并股份比例
  • 企业年金也需要缴纳吗
  • 单位部分承担个人借款利息个税的计算
  • 收到工伤赔偿款会计分录
  • 票据和结算凭证上的签章
  • 没有销售收入可以有销售费用吗
  • 补入库存商品的会计分录
  • 当月用专票是增版还是增量
  • 公立医院固定资产贷款相关规定
  • 个人租车所得交什么税
  • 开加工费的发票该如何抵扣?
  • 汽车修理费入账
  • 卷式发票有税率吗
  • 金融业保险业
  • 新办企业需要做什么
  • 税务改革方向
  • 理财赎回利息怎么做账分录
  • 分担总部费用
  • 个体工商户需要做账吗
  • 折旧计算表属于外来原始凭证吗
  • 凭证导致账簿错误
  • 财务部门产生的费用入什么?
  • vue3 global
  • 巴伐利亚森林国家公园钍自然真正自然
  • php图片拼接
  • 购买固定资产后如何处理
  • php确认弹窗
  • PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
  • php 中奖概率算法
  • 被称为下一代风华的是
  • 数字图像处理实验一实验报告
  • nodejs写后端接口
  • 个税手续费会计分录
  • 企业办理退税,税务机关要检查吗
  • push添加对象
  • 多交增值税计入什么科目
  • 带折扣的发票如何入账
  • 土石方工程的税费缴纳方法
  • 合并范围外关联方需要函证吗
  • 公司法人的车租给公司怎么开发票
  • 货款必须对公帐户支付吗
  • 福利部门领用材料计入什么科目
  • mysql的my.ini配置
  • 划拨的土地出租
  • etc插卡成功有什么反应
  • 周转材料怎么做分录
  • 同一控股下并合并的股票
  • 异地建筑服务开全电发票
  • 在建工程前期费用明细
  • 私立幼儿园怎样转公立幼儿园
  • 在分公司签的合同能转到总公司吗?
  • mysql8.0优化
  • sql语句常用语句
  • sql server中的文件位置可以很灵活
  • ubuntu14.04安装vim
  • 如何关闭系统快捷键
  • win10安全系统
  • linux中chkconfig命令的作用
  • xwizard.exe是什么
  • win8操作系统界面
  • linux系统内核的功能
  • javascript运用
  • android kotlin开发
  • js实现计算器代码
  • javascript命名空间
  • PYTHON使用缩进来体现代码之间的逻辑关系
  • jquery field
  • 税务局人工客服时间
  • 河南十大纳税公司
  • 税控盘开票资料怎么导出几年前的开票信息
  • 重芳烃闪点70,初馏点是多少
  • 微观经济学的十大原理
  • 法治税务示范基地枫桥
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设