Python 实现交互式压缩:实时追踪文件压缩进度

python 实现交互式压缩:实时追踪文件压缩进度

本文将指导你如何使用 Python 实现交互式压缩,并在压缩过程中实时显示已完成压缩的文件路径。通过简单的代码修改,你可以在控制台中看到每个文件压缩完成后的提示信息,从而更清晰地了解压缩进度。

实现交互式压缩

原始代码提供了一个批量压缩目录下子文件夹为独立 zip 文件的功能。为了实现交互式体验,我们需要在每个 zip 文件创建完成后,打印出该文件的路径。 这可以通过在 create_zip 函数中添加一行代码来实现。

import osimport zipfileINPUT_FOLDER = 'to_zip'OUTPUT_FOLDER = 'zipped'def create_zip(folder_path, zipped_filepath):    zip_obj = zipfile.ZipFile(zipped_filepath, 'w')  # create a zip file in the required path    for filename in next(os.walk(folder_path))[2]: # loop over all the file in this folder        zip_obj.write(            os.path.join(folder_path, filename),  # get the full path of the current file            filename,  # file path in the archive: we put all in the root of the archive            compress_type=zipfile.ZIP_DEFLATED        )    zip_obj.close()    print(f'Zipped: {zipped_filepath}') # Added print statementdef zip_subfolders(input_folder, output_folder):    os.makedirs(output_folder, exist_ok=True)  # create output folder if it does not exist    for folder_name in next(os.walk(input_folder))[1]:  # loop over all the folders in your input folder        zipped_filepath = os.path.join(output_folder, f'{folder_name}.zip')  # create the path for the output zip file for this folder        curr_folder_path = os.path.join(input_folder, folder_name)  # get the full path of the current folder        create_zip(curr_folder_path, zipped_filepath)  # create the zip file and put in the right locationif __name__ == '__main__':    zip_subfolders(INPUT_FOLDER, OUTPUT_FOLDER)

代码解释:

我们在 create_zip 函数中,zip_obj.close() 之后添加了 print(f’Zipped: {zipped_filepath}’) 语句。zipped_filepath 变量包含了当前压缩文件的完整路径。print() 函数会将该路径输出到控制台,告知用户该文件已成功压缩。

运行结果

运行修改后的脚本后,每当一个 zip 文件创建完成,控制台会显示类似如下的信息:

立即学习“Python免费学习笔记(深入)”;

Zipped: zipped/folder1.zipZipped: zipped/folder2.zipZipped: zipped/folder3.zip

这样,用户可以清晰地了解压缩进度,提升用户体验。

注意事项

确保 INPUT_FOLDER 目录下存在需要压缩的子文件夹。确保 OUTPUT_FOLDER 目录存在,或者脚本有权限创建该目录。如果需要更详细的进度信息,可以考虑使用第三方库,例如 tqdm,它可以提供更丰富的进度条显示功能。

总结

通过在压缩完成后打印文件路径,我们轻松地实现了交互式压缩,提升了用户体验。这种方法简单有效,适用于各种需要实时反馈的场景。 进一步,可以结合 tqdm 等库,实现更完善的进度展示。

以上就是Python 实现交互式压缩:实时追踪文件压缩进度的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1375205.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月14日 14:48:40
下一篇 2025年12月14日 14:48:52

相关推荐

  • Pandas DataFrame日期范围筛选教程

    本教程详细介绍了如何在Pandas DataFrame中高效地进行日期范围筛选。我们将首先强调将日期列正确转换为datetime类型的重要性,然后通过实际代码示例,演示如何利用布尔索引和比较运算符,根据单个日期或特定日期区间来提取所需数据,并提供最佳实践以避免常见错误。 1. 引言与常见问题 在数据…

    2025年12月14日
    000
  • python中值传递和引用传递的区别

    Python采用传对象引用方式,不可变对象(如整数、字符串)在函数内修改不影响原变量,因赋值会创建新对象;可变对象(如列表、字典)可通过方法修改内容,影响原始对象,但重新赋值则断开引用。 在 Python 中,并没有像 C++ 或 Java 那样明确的“值传递”和“引用传递”的分类。Python 的…

    2025年12月14日
    000
  • Python中检查文件可写性的高效策略

    本教程探讨了在Python中检查文件是否可写而不实际创建文件的高效策略。文章首先指出直接尝试打开文件并删除的潜在问题,随后介绍了两种主要方法:使用os.access()函数进行权限检查,以及更推荐的“请求原谅而非许可”(EAFP)原则,即通过try-except PermissionError结构直…

    2025年12月14日
    000
  • Python中检查文件可写性的有效方法

    本文探讨了在Python中检查文件可写性而不实际写入的有效方法。我们将介绍如何利用os.access()函数进行权限判断,以及在计划立即打开文件时,通过try-except捕获PermissionError的更健壮实践,旨在帮助开发者避免不必要的临时文件和潜在的竞争条件,确保文件操作的可靠性。 在p…

    2025年12月14日
    000
  • 解决Python脚本无响应:理解无限循环与正确缩进

    本文探讨了Python脚本运行时出现空白屏幕或无响应的常见问题,主要归因于不当的循环结构和缩进。通过分析一个简单的生命值问答游戏示例,我们将深入理解Python中while True循环的正确使用方式,以及缩进如何决定代码块的执行范围。掌握这些核心概念对于编写健壮、可控的Python程序至关重要,能…

    2025年12月14日
    000
  • Python AES 加密解密后文本为空的解决方案

    本文针对 Python 中使用 Crypto 库进行 AES 加密解密时出现解密后文本为空的问题,提供了一种解决方案。通过分析代码,指出问题在于密钥处理方式,并提供修正后的代码示例,确保加密解密流程的正确性。同时,本文还包含完整的加密解密示例代码,方便读者理解和应用。 在使用 Python 的 Cr…

    2025年12月14日
    000
  • Python AES 加密解密后为空字符串问题的解决

    本文旨在解决在使用 Python 的 Crypto 库进行 AES 加密和解密时,解密后得到空字符串的问题。通过分析常见原因和提供修复后的代码示例,帮助开发者正确实现 AES 加密解密功能,确保数据的安全传输和存储。 AES(Advanced Encryption Standard)是一种广泛使用的…

    2025年12月14日
    000
  • 创建 TensorFlow 自定义优化器:获取梯度和变量向量

    本文档旨在指导开发者如何在 TensorFlow 中创建自定义优化器。我们将重点介绍如何获取每次迭代中的梯度和变量向量,并正确地更新这些值。通过继承 tf.keras.optimizers.Optimizer 类,并重写关键方法,开发者可以灵活地实现自己的优化算法,从而更好地控制模型的训练过程。本文…

    2025年12月14日
    000
  • 在 TensorFlow 中构建自定义优化器

    本文档旨在指导开发者如何在 TensorFlow 中创建自定义优化算法。我们将深入探讨如何获取每次迭代的当前点向量 x 和梯度向量 g,以及如何更新 x 并将更新后的值设置回模型。通过一个具体的示例,我们将展示如何修改梯度形状以适应自定义优化算法的需求,并提供构建和应用自定义优化器的完整流程。 自定…

    2025年12月14日
    000
  • Python列表中有哪些索引

    Python列表支持四种索引方式:1. 正数索引从0开始访问元素,如my_list[0]获取第一个元素;2. 负数索引从-1起从末尾反向访问,如my_list[-1]获取最后一个元素;3. 切片索引用[start:end:step]获取子列表,支持步长与反转;4. 动态索引通过index()方法查找…

    2025年12月14日
    000
  • TensorFlow自定义优化器教程:深入理解梯度操作

    本文旨在指导开发者如何在TensorFlow中创建自定义优化器,重点讲解如何获取每次迭代的当前点向量和梯度向量,并进行更新。通过实例代码,详细解释了梯度扁平化处理的重要性,以及如何在自定义优化器中正确更新模型参数,从而实现对神经网络优化算法的灵活控制。 在TensorFlow中,自定义优化器能够让我…

    2025年12月14日
    000
  • 高效处理 Python 异步操作中的异常

    本文旨在提供一种在 Python 的 asyncio 框架下,高效处理异步操作中异常的方法。重点在于如何在单个任务发生异常时,避免影响其他并发任务的执行,从而保证程序的健壮性和稳定性。我们将通过代码示例展示如何在异步函数内部进行异常处理,确保即使出现错误,程序也能继续执行。 在 Python 中使用…

    2025年12月14日
    000
  • Python异步操作中的高效错误处理

    本文旨在提供在Python中使用asyncio进行异步操作时,如何高效处理错误的实用指南。通过将错误处理逻辑嵌入到每个独立的异步任务中,可以确保即使某个任务失败,其他任务也能继续执行,从而提高程序的整体健壮性和可靠性。本文将提供示例代码,演示如何在asyncio中实现这种错误处理策略,并讨论相关的注…

    2025年12月14日
    000
  • 通过值搜索Python字典并返回相关值

    本文旨在提供一种通过Python字典的值来查找相关信息的方法。我们将探讨如何遍历字典,检查目标值是否存在,并返回与该值相关的其他值。通过示例代码,你将学会如何根据元素名称、符号、原子序数或原子量来查找化学元素的相关信息。同时,我们也会讨论如何保持返回值的顺序,以及在实际应用中需要注意的事项。 在许多…

    2025年12月14日
    000
  • Python字典高效过滤:创建满足特定条件的新字典

    本文将介绍如何高效地根据特定条件过滤Python字典,并创建两个新的字典。原始字典中的每个键值对将根据值中是否包含特定字符串而被分配到两个新字典中的一个。我们将使用 items() 方法遍历字典,并结合 any() 函数进行条件判断,以实现简洁高效的过滤。 使用 items() 方法和 any() …

    2025年12月14日
    000
  • 使用 Python 过滤字典创建新字典的实用指南

    本文旨在指导读者如何根据特定条件,高效地从一个Python字典中创建两个新的字典。通过迭代原始字典的键值对,并结合any()函数进行条件判断,我们可以将符合条件的键值对分别添加到两个目标字典中,从而实现字典的过滤和拆分。本文提供清晰的代码示例和详细的解释,帮助读者理解和应用这一技术。 在Python…

    2025年12月14日
    000
  • Python中os模块的功能介绍

    os模块提供跨平台系统交互功能,支持文件目录操作(如创建、删除、重命名)、路径处理(拼接、判断存在性)、环境变量管理及系统命令执行,常用于自动化脚本,需注意权限与路径兼容性问题。 Python的os模块提供了与操作系统交互的接口,允许开发者执行文件和目录操作、管理进程、处理路径等。它是一个跨平台模块…

    2025年12月14日
    000
  • python函数形参如何设置默认值

    在Python中,函数形参可通过等号设置默认值,如def greet(name, prefix=”Hello”),调用时若未传参则使用默认值,且默认参数需位于非默认参数之后,避免使用可变对象作为默认值,因默认值在定义时即确定,正确做法是用None判断并初始化,从而提升函数灵活…

    2025年12月14日
    000
  • python字典遍历所有的键值对

    最常用的是使用items()方法遍历键值对,还可通过keys()遍历键、values()遍历值,或直接遍历字典获取键。 在Python中,遍历字典的所有键值对有几种常用方法。最直接的方式是使用 items() 方法,它返回一个包含字典中所有键值对的可迭代对象。 使用 items() 遍历键值对 通过…

    2025年12月14日
    000
  • python控制语句的两大分类

    Python控制语句分为条件和循环两类。条件语句包括if、if-else、if-elif-else,用于根据条件真假执行不同代码块;循环语句包括for和while循环,用于重复执行代码,其中for遍历序列,while在条件为真时持续执行,循环中可用break退出、continue跳过当前次、pass…

    2025年12月14日
    000

发表回复

登录后才能评论
关注微信