python多进程实现文件下载传输功能


Posted in Python onJuly 28, 2018

本文实例为大家分享了python多进程实现文件下载传输功能的具体代码,供大家参考,具体内容如下

需求:

实现文件夹拷贝功能(包括文件内的文件),并打印拷贝进度

模块:

os模块
multiprocessing 模块

代码:

import multiprocessing
import os


def deal_file(old_dir,new_dir,file_name,queue):
  # 打开以存在文件
  old_file = open(os.path.join(old_dir,file_name),"rb")
  # 创建新文件
  new_file = open(os.path.join(new_dir,file_name),"wb")
  # 循环将内容写入新文件
  while True:
    # 单行读取
    data = old_file.readline()
    # 如果有内容写入否则退出
    if data:

      new_file.write(data) 
    else:
      break

  # 关闭文件
  old_file.close()
  new_file.close()
  # 向队列中添加值用以计数,参数可填任意值
  queue.put(file_name)

def main():
  # 创建用户输入文件的备份
  old_dir = input("请输入文件名:")

  new_dir = "备份"+old_dir

  os.mkdir(new_dir)
  # 列出文件夹内的文件列表
  file_list = os.listdir(old_dir)

  queue = multiprocessing.Queue(128)
  for file_name in file_list:

    pro = multiprocessing.Process(target=deal_file,args=(old_dir,new_dir,file_name,queue))
    # 创建子进程
    pro.start()
  # 定义变量用以计数
  num = 0
  while True:
    # 取出队列中的值
    queue.get()
    # 计数器+1
    num += 1
    # 打印下载进度
    print("\r文件已下载%.2f %%" % (num/len(file_list)*100),end="")
    # 如果计数等于文件长度提示完成退出
    if num == len(file_list):
      print("文件下载完成")
      break
if __name__ == "__main__":

  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python multiprocessing.Manager介绍和实例(进程间共享数据)
Nov 21 Python
python实现rsa加密实例详解
Jul 19 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
May 18 Python
python numpy 部分排序 寻找最大的前几个数的方法
Jun 27 Python
使用Python写一个量化股票提醒系统
Aug 22 Python
python用插值法绘制平滑曲线
Feb 19 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
Jan 11 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
浅析NumPy 切片和索引
Sep 02 Python
Python将QQ聊天记录生成词云的示例代码
Feb 10 Python
python如何生成网页验证码
Jul 28 #Python
python3利用tcp实现文件夹远程传输
Jul 28 #Python
python使用tornado实现简单爬虫
Jul 28 #Python
python编写简易聊天室实现局域网内聊天功能
Jul 28 #Python
对tensorflow 的模型保存和调用实例讲解
Jul 28 #Python
Python Socket编程之多线程聊天室
Jul 28 #Python
python实现点对点聊天程序
Jul 28 #Python
You might like
PHP遍历数组的几种方法
2012/03/22 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
php模拟登陆的实现方法分析
2015/01/09 PHP
php计算函数执行时间的方法
2015/03/20 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
php格式文件打开的四种方法
2018/02/24 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
JQuery优缺点分析说明
2010/06/09 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
2012/08/29 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
JavaScript中数据结构与算法(五):经典KMP算法
2015/06/19 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
nodejs基础知识
2017/02/03 NodeJs
详解Vue中添加过渡效果
2017/03/20 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
jQuery实现火车票买票城市选择切换功能
2017/09/15 jQuery
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
vue+element tabs选项卡分页效果
2020/06/29 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
js删除指定位置超链接中含有百度与360的标题
2021/01/06 Javascript
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
python计算书页码的统计数字问题实例
2014/09/26 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
英文简历自荐信范文
2013/12/11 职场文书
财经学院自荐信范文
2014/02/02 职场文书
公务员政审材料
2014/12/23 职场文书
五四青年节活动总结
2015/02/10 职场文书
毕业论文致谢范文
2015/05/14 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers
Python开发简易五子棋小游戏
2022/05/02 Python