python多线程案例之多任务copy文件完整实例


Posted in Python onOctober 29, 2019

本文实例讲述了python多线程案例之多任务copy文件。分享给大家供大家参考,具体如下:

import os
import multiprocessing
def copy_file(q,file_name, old_folder_name, new_folder_name):
  """完成文件的复制"""
  old_f = open(old_folder_name+"/"+file_name, "rb")
  content = old_f.read()
  old_f.close()
  new_f = open(new_folder_name+"/"+file_name, "wb")
  new_f.write(content)
  new_f.close()
  # print("从%s--->到%s 复制文件%s成功!" % (old_folder_name, new_folder_name, file_name))
  q.put(file_name)
def main():
  # 1.获取用户要copy的文件夹名称
  old_folder_name = input("请输入要copy的文件夹:")
  # 2.创建一个新的文件夹
  try:
    new_folder_name = old_folder_name + "复件"
    os.mkdir(new_folder_name)
  except:
    pass
  # 3.获取所有待copy的文件名称 listdir()
  file_names = os.listdir(old_folder_name)
  print(file_names)
  # 4.创建进程池
  po = multiprocessing.Pool(2)
  # 5.创建一个队列
  q = multiprocessing.Manager().Queue()
  # 6.向进程池中添加copy文件的任务
  for file_name in file_names:
    po.apply_async(copy_file, args=(q,file_name, old_folder_name, new_folder_name))
  po.close()
  # po.join()
  all_file_num = len(file_names) # 统计所有的文件个数
  copy_ok_num = 0
  while True:
    file_name = q.get()
    # print("已经完成copy :%s" % file_name)
    copy_ok_num += 1
    print("\r复制的进度为:%.2f %%" % (copy_ok_num*100/all_file_num),end='')
    if copy_ok_num >= all_file_num:
      break
if __name__ == '__main__':
  main()

python多线程案例之多任务copy文件完整实例

python多线程案例之多任务copy文件完整实例

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python异常处理总结
Aug 15 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
Apr 28 Python
Python基于select实现的socket服务器
Apr 13 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 Python
Python 关于反射和类的特殊成员方法
Sep 14 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
Nov 23 Python
pycharm+django创建一个搜索网页实例代码
Jan 24 Python
Django认证系统实现的web页面实现代码
Aug 12 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
Python环境配置实现pip加速过程解析
Nov 27 Python
python Polars库的使用简介
Apr 21 Python
jenkins配置python脚本定时任务过程图解
Oct 29 #Python
pygame实现成语填空游戏
Oct 29 #Python
Python多线程及其基本使用方法实例分析
Oct 29 #Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 #Python
pygame实现非图片按钮效果
Oct 29 #Python
线程安全及Python中的GIL原理分析
Oct 29 #Python
pygame实现贪吃蛇游戏(下)
Oct 29 #Python
You might like
php性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
2015/11/27 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
Js实现滚动变色的文字效果
2014/06/16 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Django与遗留的数据库整合的方法指南
2015/07/24 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
Python定义函数时参数有默认值问题解决
2019/12/19 Python
win10系统下python3安装及pip换源和使用教程
2020/01/06 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
领导调研接待方案
2014/02/27 职场文书
消防宣传口号
2014/06/16 职场文书
常务副总经理岗位职责
2015/02/02 职场文书
孔子观后感
2015/06/08 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
Vue中Object.assign清空数据报错的解决方案
2022/03/03 Vue.js