python进程池实现的多进程文件夹copy器完整示例
作者:lislislislislis 时间:2021-04-27 13:05:26
本文实例讲述了python进程池实现的多进程文件夹copy器。分享给大家供大家参考,具体如下:
应用:文件夹copy器(多进程版)
import multiprocessing
import os
import time
import random
def copy_file(queue, file_name,source_folder_name, dest_folder_name):
"""copy文件到指定的路径"""
f_read = open(source_folder_name + "/" + file_name, "rb")
f_write = open(dest_folder_name + "/" + file_name, "wb")
while True:
time.sleep(random.random())
content = f_read.read(1024)
if content:
f_write.write(content)
else:
break
f_read.close()
f_write.close()
# 发送已经拷贝完毕的文件名字
queue.put(file_name)
def main():
# 获取要复制的文件夹
source_folder_name = input("请输入要复制文件夹名字:")
# 整理目标文件夹
dest_folder_name = source_folder_name + "[副本]"
# 创建目标文件夹
try:
os.mkdir(dest_folder_name)
except:
pass # 如果文件夹已经存在,那么创建会失败
# 获取这个文件夹中所有的普通文件名
file_names = os.listdir(source_folder_name)
# 创建Queue
queue = multiprocessing.Manager().Queue()
# 创建进程池
pool = multiprocessing.Pool(3)
for file_name in file_names:
# 向进程池中添加任务
pool.apply_async(copy_file, args=(queue, file_name, source_folder_name, dest_folder_name))
# 主进程显示进度
pool.close()
all_file_num = len(file_names)
while True:
file_name = queue.get()
if file_name in file_names:
file_names.remove(file_name)
copy_rate = (all_file_num-len(file_names))*100/all_file_num
print("\r%.2f...(%s)" % (copy_rate, file_name) + " "*50, end="")
if copy_rate >= 100:
break
print()
if __name__ == "__main__":
main()
希望本文所述对大家Python程序设计有所帮助。
来源:https://blog.csdn.net/lislislislislis/article/details/89318228
标签:python,进程池,多进程
0
投稿
猜你喜欢
详解字符串在Python内部是如何省内存的
2021-04-19 08:19:42
瞬间的设计 I
2009-12-25 18:54:00
new_zeros() pytorch版本的转换方式
2022-07-31 17:32:36
解决Linux系统中python matplotlib画图的中文显示问题
2023-12-18 22:10:53
Python Selenium安装及环境配置的实现
2023-01-02 18:19:18
Mysql更换MyISAM存储引擎为Innodb的操作记录总结
2024-01-22 05:54:25
推荐一款高效的python数据框处理工具Sidetable
2022-07-22 04:34:25
golang-redis之sorted set类型操作详解
2024-02-02 05:19:20
python中threading开启关闭线程操作
2022-10-02 22:40:26
使用cookie和application实现在线人数统计
2007-09-18 13:01:00
Java+mysql本地图片上传数据库及下载示例
2023-07-23 19:49:13
Python利用 SVM 算法实现识别手写数字
2023-04-17 10:33:58
对python requests发送json格式数据的实例详解
2023-12-11 05:16:07
10个值得深思的PHP面试题
2023-11-15 00:35:37
windows下python虚拟环境virtualenv安装和使用详解
2023-08-30 11:06:39
一步步教你配置MySQL远程访问
2024-01-16 13:07:26
最新版MySQL 8.0.22下载安装超详细教程(Windows 64位)
2024-01-18 15:11:02
Python跨文件全局变量的实现方法示例
2021-05-26 08:13:23
python:print格式化输出到文件的实例
2023-08-25 06:40:53
Python3 循环语句(for、while、break、range等)
2022-11-26 14:36:40