取消代码中进度条改为已用时= 剩余时间= 速度=字体颜色绿色import osimport subprocessfrom tqdm import tqdmdef pack_filessource_dir output_dir # 检查源目录和输出目录是否存在 if not ospathexistssource_dir or not ospathisdirsource_dir
import os import subprocess from tqdm import tqdm
def pack_files(source_dir, output_dir): # 检查源目录和输出目录是否存在 if not os.path.exists(source_dir) or not os.path.isdir(source_dir): print(f'源目录{source_dir}不存在或不是一个目录') return
if not os.path.exists(output_dir) or not os.path.isdir(output_dir):
print(f'输出目录{output_dir}不存在或不是一个目录')
return
# 计算文件总数
total_files = sum([len(files) for root, dirs, files in os.walk(source_dir)])
# 外层进度条(总进度)
with tqdm(total=total_files, desc='压缩进度', bar_format='{desc}: {percentage:3.0f}%|{bar}| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, {rate_fmt}]', colour='green') as pbar:
for root, dirs, files in os.walk(source_dir):
for file in files:
# 获取需要压缩的文件路径
file_path = os.path.join(root, file)
# 获取文件名和文件后缀
file_name, file_ext = os.path.splitext(file)
# 拼接输出文件路径(去掉文件后缀)
output_file = os.path.join(output_dir, f'{file_name}.gz')
# 使用pigz进行压缩
subprocess.run(['pigz', '-c', file_path], stdout=open(output_file, 'wb'))
# 更新外层进度条
pbar.update(1)
# 输出信息到控制台
elapsed_time = pbar.format_dict['elapsed']
remaining_time = pbar.format_dict['remaining']
speed = pbar.format_dict['rate_fmt']
tqdm.write(f'已用时={elapsed_time}, 剩余时间={remaining_time}, 速度={speed}')
路径
source_dir = '/home/115/up' output_dir = '/home/115/app' pack_files(source_dir, output_dir
原文地址: https://www.cveoy.top/t/topic/c4z3 著作权归作者所有。请勿转载和采集!