python 复制文件夹并取得复制的进度百分比
你可以使用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等专门用于文件复制的工具
原文地址: https://www.cveoy.top/t/topic/h1JO 著作权归作者所有。请勿转载和采集!