吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1686|回复: 6
收起左侧

[Python 转载] 多进程备份文件

[复制链接]
silentPasser 发表于 2021-9-23 17:08
本帖最后由 silentPasser 于 2021-9-24 11:57 编辑

代码:
[Python] 纯文本查看 复制代码
from multiprocessing import Manager, Pool
import os


def 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', '&#9830;' * 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()


存在的bug:
要备份的文件夹中不能包含文件夹。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

侃遍天下无二人 发表于 2021-9-23 18:39
所谓备份就是用代码复制粘贴吗,多线程又不能解决磁盘IO资源不足的问题,不如做个透明加密上传到阿里云盘备份的功能,同时要求下载回来的时候能实现透明解密
头像被屏蔽
细水流长 发表于 2021-9-23 18:43
侃遍天下无二人 发表于 2021-9-23 19:09
细水流长 发表于 2021-9-23 18:43
把阿里云盘挂载到本地,然后复制粘贴进去不就行了
自动备份的话也比较简单

关键词:透明加密、透明解密
JinxBoy 发表于 2021-9-23 21:25
不能有文件夹 ?
虔来学习 发表于 2021-9-24 07:40
代码上写貌似是多进程,标题为什么用多线程,多线程应该是用threading库的,可你用的是multiprocessing。。。。。
 楼主| silentPasser 发表于 2021-9-24 11:54
虔来学习 发表于 2021-9-24 07:40
代码上写貌似是多进程,标题为什么用多线程,多线程应该是用threading库的,可你用的是multiprocessing。。 ...

没注意,多线程说多了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:23

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表