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的Django框架生成PDF文件的教程
Jul 22 Python
新手如何快速入门Python(菜鸟必看篇)
Jun 10 Python
python使用 HTMLTestRunner.py生成测试报告
Oct 20 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
Sep 25 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
Jan 06 Python
使用Python实现批量ping操作方法
May 06 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
Python页面加载的等待方式总结
Feb 28 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 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
2018/09/28 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
2019/04/05 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
jQuery的基本概念与高级编程
2015/05/14 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
微信小程序中页面FOR循环和嵌套循环
2017/06/21 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
Vue切换div显示隐藏,多选,单选代码解析
2020/07/14 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
Python 和 JS 有哪些相同之处
2017/11/23 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
python实现定时提取实时日志程序
2018/06/22 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
Python Selenium参数配置方法解析
2020/01/19 Python
Python中os模块功能与用法详解
2020/02/26 Python
python3 re返回形式总结
2020/11/20 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
作风年建设汇报材料
2014/08/14 职场文书
大学生求职意向书
2015/05/11 职场文书
学校工会工作总结2015
2015/05/19 职场文书
使用Django框架创建项目
2022/06/10 Python
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技