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 相关文章推荐
Python3.6正式版新特性预览
Dec 15 Python
python中pandas.DataFrame排除特定行方法示例
Mar 12 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
python利用小波分析进行特征提取的实例
Jan 09 Python
dataframe 按条件替换某一列中的值方法
Jan 29 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
Aug 20 Python
python 使用pdfminer3k 读取PDF文档的例子
Aug 27 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
Jan 07 Python
最新2019Pycharm安装教程 亲测
Feb 28 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
python模拟点击玩游戏的实例讲解
Nov 26 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 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
海贼王:最美的悬赏令!
2020/03/02 日漫
用Flash图形化数据(二)
2006/10/09 PHP
PHP学习之PHP表达式
2006/10/09 PHP
一个PHP数组应该有多大的分析
2009/07/30 PHP
修改destoon会员公司的伪静态中的com目录的方法
2014/08/21 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
2013/01/25 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
jQuery验证插件validation使用指南
2015/04/21 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
jquery操作angularjs对象
2015/06/26 Javascript
jquery实现的横向二级导航效果代码
2015/08/26 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
Python FFT合成波形的实例
2019/12/04 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
法学毕业生自荐信
2013/11/13 职场文书
消防安全宣传口号
2014/06/10 职场文书
如何写股份合作协议书
2014/09/11 职场文书
店长岗位职责
2015/02/11 职场文书
学生会自荐信
2019/05/16 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
python操作xlsx格式文件并读取
2021/06/02 Python
Node.js实现断点续传
2021/06/23 Javascript