Python多进程拷贝
实现思路
- 创建可获取目标文件或文件夹中的所有文件夹和文件的列表的函数
- 创建拷贝文件的函数
- 主函数创建进程池和消息队列
获取文件夹和文件列表
先判断路径是文件还是文件夹,是文件直接添加至文件列表;文件夹的话,添加至文件夹列表,利用os.listdir()函数列出当前文件夹内的所有文件,循环遍历,拼接源地址,然后作为参数递归循环;
1 | def get_file_list(source_path): |
拷贝文件
传入的参数
- queue: 消息队列,用于主函数计数
- source_file: 源文件路径
- dest_file: 目标文件的路径
循环读取写入,是防止文件过大,读写卡死
1 | def copy_file(queue, source_file, dest_file): |
源代码
如下:
1 | from multiprocessing import Manager, Pool |