Python3多进程复制文件

 
from multiprocessing import Pool, Manager
import os, csv
import shutil

def copyFile(fileName, oldFilesName, newFilesName, queue):
    shutil.copyfile(oldFilesName + "/" + fileName, newFilesName + "/" + fileName, )
    queue.put(fileName)

def main():
    oldFilesName = 'D:/TrainingData'
    newFilesName = 'D:/class_im/'
    fileNames_1 = os.listdir('D:/class_im/')
    csvfile = open('C:/Users/81080/Desktop/class.csv', 'r')
    csvreader = csv.reader(csvfile)
    key_url_list = [line[:1] for line in csvreader]
    fileNames = []
    for i in range(14400,14949):
        key = str(key_url_list[i])
        key = key[key.find ('[') + 2 : key.find(']') - 1]
        fileNames.append(key)
    print(fileNames)
    pool = Pool(5)
    queue = Manager().Queue()
    for fileName in fileNames:
        pool.apply_async(copyFile, args=(fileName, oldFilesName, newFilesName, queue))

    count = 0
    allCounts = len(fileNames)
    while True:
        name_t = queue.get()
        count += 1
        #       print('count:%s'%count)
        #       print('-----------------------------------')
        print('\r拷贝进度:%.2f%%' % ((count / allCounts) * 100), end='')
        if count == allCounts:
            print('\n--------over---------')
            break

if __name__ == '__main__':
    main()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值