这个错误可能是因为 tqdm 版本不兼容导致的。尝试升级 tqdm 版本到最新版(目前是 4.62.0)并重新运行代码。如果问题仍然存在,可以尝试使用一个较早的 tqdm 版本(例如 4.60.0)来解决问题。可以使用 pip install tqdm==4.60.0 命令来安装。

以下代码报错:AttributeError: 'tqdm' object has no attribute 'last_print_t'

tqdm==4.65.0 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}%|�33[0m�33[32m{bar}�33[0m| [耗时:{elapsed} 速度:{rate_percent:.2f}%/s]',
          dynamic_ncols=True) 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')

            if os.path.isdir(file_path):
                # 处理文件夹,使用tar命令打包并压缩成tar.gz格式
                tar_file = os.path.join(output_dir, f'{file_name}.tar.gz')
                subprocess.run(['tar', '-czf', tar_file, file_path])
                tqdm.write(f'已将文件夹{file_path}打包压缩到{tar_file}')
            else:
                # 处理文件,使用pigz进行压缩
                subprocess.run(['pigz', '-c', file_path],
                               stdout=open(output_file, 'wb'))
                tqdm.write(f'已将文件{file_path}压缩到{output_file}')

            # 更新外层进度条
            pbar.update(1)

路径

source_dir = '/home/115/up' output_dir = '/home/115/app' pack_files(source_dir, output_dir)

AttributeError: 'tqdm' object has no attribute 'last_print_t' -  tqdm 版本兼容性问题

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

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