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

 更新时间:2019年10月29日 10:52:57   作者:独听钟声晚  
这篇文章主要介绍了python多线程案例之多任务copy文件,结合完整实例形式分析了Python使用multiprocessing模块实现基于多线程的文件拷贝相关操作技巧,需要的朋友可以参考下

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》、《Python+MySQL数据库程序设计入门教程》及《Python常见数据库操作技巧汇总

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

相关文章

  • python实现图片文件批量重命名

    python实现图片文件批量重命名

    这篇文章主要为大家详细介绍了python实现图片文件批量重命名,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • python入门for循环嵌套理解学习

    python入门for循环嵌套理解学习

    这篇文章主要介绍了python入门关于for循环嵌套的理解学习,希望大家可以学会并运用到日常工作中,有需要的朋友可以借鉴参考下,希望能够有帮助
    2021-09-09
  • Python Numpy计算各类距离的方法

    Python Numpy计算各类距离的方法

    这篇文章主要介绍了Python Numpy计算各类距离的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 如何使用Django Admin管理后台导入CSV

    如何使用Django Admin管理后台导入CSV

    这篇文章主要介绍了如何使用Django Admin管理后台导入CSV,帮助大家更好的理解和使用django框架,感兴趣的朋友可以了解下
    2020-11-11
  • Python Pandas创建Dataframe数据框的六种方法汇总

    Python Pandas创建Dataframe数据框的六种方法汇总

    这篇文章主要介绍了Python中的Pandas创建Dataframe数据框的六种方法,创建Dataframe主要是使用pandas中的DataFrame函数,其核心就是第一个参数:data,传入原始数据,因此我们可以据此给出六种创建Dataframe的方法,需要的朋友可以参考下
    2023-05-05
  • Python中的进程操作模块(multiprocess.process)

    Python中的进程操作模块(multiprocess.process)

    这篇文章介绍了Python中的进程操作模块(multiprocess.process),文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 使用python实现数据筛查

    使用python实现数据筛查

    一般数据筛查可以通过Python中的pandas库来实现,下面小编就来为大家介绍一下Python如何利用pandas实现数据筛查,感兴趣的小伙伴可以一起学习一下
    2023-10-10
  • python人工智能tensorflow函数tf.get_variable使用方法

    python人工智能tensorflow函数tf.get_variable使用方法

    这篇文章主要为大家介绍了python人工智能tensorflow函数tf.get_variable使用方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python中的错误处理与调试技巧分享

    Python中的错误处理与调试技巧分享

    在软件开发过程中,错误是不可避免的,无论是在开发初期还是在项目后期,程序都可能会遇到各种各样的错误,本文将深入探讨 Python 中的错误处理机制、常见错误类型及其处理方法,并介绍一些实用的调试技巧,以提高开发效率和代码质量,需要的朋友可以参考下
    2025-01-01
  • 手把手教你在Python里使用ChatGPT

    手把手教你在Python里使用ChatGPT

    最近几天我一直在玩 ChatGPT,我对使用这个工具的无限可能性着迷,下面这篇文章主要给大家介绍了关于在Python里使用ChatGPT的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12

最新评论