> 文档中心 > 用python备份文件夹

用python备份文件夹


python多进程备份文件夹

代码:

from multiprocessing import Manager, Poolimport osdef copyFile(oldFile, newFile, queue=None):    with open(oldFile, 'rb') as f: content = f.read()    with open(newFile, 'wb') as f: f.write(content)    if queue is not None: queue.put(1)def copyFolder(old, new):    os.mkdir(new)    files = os.listdir(old)    pool = Pool(8)    # 待拷贝文件    n = files.__len__()    queue = Manager().Queue(n)    for file in files: pool.apply_async(copyFile, (f'{old}\\{file}', f'{new}\\{file}', queue))    pool.close()    # 完成拷贝的文件个数    finish = 0    while finish < n: finish += queue.get() rate = int(finish / n * 100) print('\r', '♦' * int(rate / 5), f'{rate}%', end='')    pool.join()def main():    old = input("原文件路径:")    new = input('拷贝文件路径:')    if os.path.exists(old): if os.path.isdir(old):     copyFolder(old, new)     return copyFile(old, new) return    print('原文件不存在!')    main()if __name__ == '__main__':    main()

不足:要备份的文件夹中不能有文件夹