<pre class="has">

import multiprocessing
import os

copy文件函数

def copy_file(old_folder_name, new_folder_name, file_name):

print('copy文件夹{}====》到{},文件名称为:{}'.format(old_folder_name, new_folder_name, file_name))
# 读取文件

with open(old_folder_name + '/' + file_name, 'rb') as fw:
    file_content = fw.read()
# 写入文件
with open(new_folder_name + '/' + file_name, 'wb') as fr:
    fr.write(file_content)

def main():

# 1. 获取用户要copy的文件夹名称

# global new_folder_name
old_folder_name = input('请输入要copy的文件夹名称: ')
if not os.path.exists(old_folder_name):
    old_folder_name = input('文件夹不存在,请重新输入: ')

# 2. 创建一个新的文件夹
# if not os.path.exists(old_folder_name + '[复制]'):
# 如果文件夹存在,则抛出异常
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. 赋值文件夹中的文件,到新的文件夹中
pool = multiprocessing.Pool(5)

for file_name in file_names:
    # 取出进程池中一个进程执行copy文件操作,当空闲进程使用光后,从使用过的进程(alive活跃的)中取一个年龄做大(且进程执行完毕)的进程,重复使用。
    pool.apply_async(copy_file, args=(old_folder_name, new_folder_name, file_name))

# 这两个必须写否则进程池里的进程不会运行
pool.close()
pool.join()

if name == "__main__":


main()

标签: 进程, python, file, copy, 多任务, folder, name, old

相关文章推荐

添加新评论,含*的栏目为必填