用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()
不足:要备份的文件夹中不能有文件夹