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 相关文章推荐
以一段代码为实例快速入门Python2.7
Mar 31 Python
Python psutil模块简单使用实例
Apr 28 Python
Python实现豆瓣图片下载的方法
May 25 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
使用django和vue进行数据交互的方法步骤
Nov 11 Python
python:批量统计xml中各类目标的数量案例
Mar 10 Python
Matplotlib配色之Colormap详解
Jan 05 Python
python基于pexpect库自动获取日志信息
Feb 01 Python
Python 制作自动化翻译工具
Apr 25 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 Python
PyTorch 如何自动计算梯度
May 23 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翻页类
2009/06/01 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
yii用户注册表单验证实例
2015/12/26 PHP
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
详解Angular2组件之间如何通信
2017/06/22 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
JavaScript Reflect Metadata实现详解
2019/12/12 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
基于JS实现操作成功之后自动跳转页面
2020/09/25 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
基于python的字节编译详解
2017/09/20 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
利用Python如何实时检测自身内存占用
2020/05/09 Python
python 深度学习中的4种激活函数
2020/09/18 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
信访工作者先进事迹
2014/01/17 职场文书
决心书标准格式
2014/03/11 职场文书
大学生读书笔记范文
2015/07/01 职场文书
爱国教育主题班会
2015/08/14 职场文书
导游词之五台山
2019/10/11 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android