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()
Python3多进程复制文件
最新推荐文章于 2020-12-22 13:16:05 发布