位置: 编程技术 - 正文

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

  • 增值税纳税申报时间
  • 个体工商户的纳税人类型怎么选
  • 出口免税收入的计税依据
  • 油费补贴计入什么科目
  • 墨盒应该怎么买
  • 收到上年多缴的企业所得税
  • 企业资产重组是不定期清查吗
  • 工业企业所得税优惠政策
  • 国外租赁行业都包括哪些
  • 广告合同印花税率怎么算
  • 个税专项扣除做什么用
  • 收回已作为坏账准备的应收账款会计分录
  • 利润是负数如何计算利润率
  • 销售货物多收款怎么处理
  • 企业用现金支付业务招待费1000元
  • 平台服务费如何开票
  • 第三方代收代付平台
  • 用友t3建新账
  • 公司地址变更代办需要多少钱
  • 设备安装服务费税收分类编码
  • 什么是债券持有人
  • 收到别人押金的会计分录
  • 如何更改文件的创建时间
  • linux swap 0
  • 货物运输税费
  • 增值税减免税的征管规定有哪些
  • 缴纳社保的时候工资填写多少
  • html基础网页
  • 从零开始吧
  • 电梯维保越来越没搞头了
  • 合同没有约定发票税点谁承担怎么办
  • 预提费用核算内容有哪些
  • 企业贷款利息可以开发票吗
  • sql执行顺序优先级
  • 资产负债表应交税费为负数
  • 公司用车租赁
  • 不动产作价出资入股登记收件
  • SQL2008中通过DBCC OPENTRAN和会话查询事务
  • 增值税纳税申报实训报告
  • 红冲的发票能不能取消
  • 食堂购电饭锅账务处理
  • 交易性金融资产公允价值变动怎么算
  • 银行承兑汇票提示付款期为几天
  • 公司注销时发现有预付款
  • 代建项目谁付款
  • 结转费用后利润怎么算
  • 进项税转出的金额是什么
  • 会计计量属性主要包括()
  • 资金结存属于资产类吗
  • 生产车间生产工人的薪酬计入什么
  • 从业人数和资产总额指标,应按企业
  • 预计负债计入哪里
  • 本票丢了别人可以取钱吗
  • 私营公司融资租房合法吗
  • mybatis报错invalid bound statement
  • mysql安装使用教程
  • win7纯净版系统安装
  • mac键盘图标与对应不匹配
  • win7系统桌面快捷键
  • xp专业版激活工具
  • linux vs windows
  • win10系统局域网共享打印机设置
  • yum could not resolve host
  • win7系统回收站不见了怎么办
  • win10一年更新一次
  • win7筛选键
  • jquery操作html代码
  • pops基本属性
  • android item属性
  • unity 数学
  • 命令行创建虚拟机
  • python给定某数字a
  • 弹簧设计软件手机版
  • vue微信分享功能
  • javascript点击按钮改变字体颜色
  • javascript核心技术开发解密
  • 如何下载个人所得税A表
  • 北京税务局地税电话
  • 国税地税征管体制改革方案
  • 四川增值税发票图片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设