你可以使用shutil模块中的copytree函数来复制文件夹,并使用os模块中的walk函数来遍历文件夹和文件。

这里是一个示例代码,可以复制文件夹并获取复制进度的百分比:

import shutil
import os

def copy_folder(src, dst):
    # 获取源文件夹中的所有文件夹和文件
    total_files = sum([len(files) for _, _, files in os.walk(src)])
    copied_files = 0

    def copy_progress(src, dst):
        nonlocal copied_files
        if os.path.isdir(dst):
            dst = os.path.join(dst, os.path.basename(src))
        shutil.copy2(src, dst)
        copied_files += 1
        progress = (copied_files / total_files) * 100
        print(f"Copy progress: {progress:.2f}%")

    shutil.copytree(src, dst, copy_function=copy_progress)

# 用法示例:
src_folder = "/path/to/source/folder"
dst_folder = "/path/to/destination/folder"
copy_folder(src_folder, dst_folder)

在上面的示例中,copy_progress函数用于复制文件,并在每次复制完成后计算进度百分比并打印出来。total_files变量用于存储源文件夹中的总文件数,copied_files变量用于存储已复制的文件数。在复制过程中,copied_files会逐渐递增,从而计算出复制进度百分比。

注意:该方法只适用于复制较小的文件夹,如果你要复制的文件夹非常大,可能会导致内存消耗较大。在处理大型文件夹时,可以考虑使用rsync等专门用于文件复制的工具

python 复制文件夹并取得复制的进度百分比

原文地址: https://www.cveoy.top/t/topic/h1JO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录