0

如果解压缩的文件符合条件,我需要在运行检查时将大量 zipx 文件解压缩到目录中。条件是“如果有同名的文件,只有在解压后的文件更大的情况下才会出现”。

我想用 win32com 控制 winzip,但我用 COM 浏览器 (win32com\client\combrowse.py) 找不到 Object.Name。也很高兴找到我可以与这个 winzip 对象一起使用的方法。

任何人都可以帮助我选择或建议一个更简单的选择来解决所描述的问题。谢谢。

4

1 回答 1

1

忘记win32com。反而,

  1. 创建目标文件夹
  2. 循环 zipx 档案;每一个人:
    1. 使用 Python 的 tempfile 模块创建一个临时文件夹
    2. 使用 subprocess 模块在 zipx 存档上运行解压缩实用程序(处理 zipx 格式),并使用命令行选项提取到创建的临时文件夹
    3. 如果文件满足条件,则使用 shutil 模块将该文件夹中的每个解压缩文件复制到第一步创建的公共目标文件夹中。对于文件大小,使用 Path.stat().st_size 或 os.path.get_size()。
    4. 删除临时文件夹

因此,每个存档都被解压缩到不同的临时文件夹,但所有提取的文件都被移动到一个公共文件夹。或者,您可以对所有存档使用相同的临时文件夹,但在每次迭代结束时清空文件夹,并在脚本结束时删除临时文件夹。

  1. 创建目标文件夹
  2. 使用 Python 的 tempfile 模块创建一个临时存档提取文件夹
  3. 循环 zipx 档案;每一个人:
    1. 使用 subprocess 模块在 zipx 存档上运行解压缩实用程序(处理 zipx 格式),并使用命令行选项提取到创建的临时文件夹
    2. 如果文件满足条件,则使用 shutil 模块将该文件夹中的每个解压缩文件复制到第一步创建的公共目标文件夹中。对于文件大小,使用 Path.stat().st_size 或 os.path.get_size()。
    3. 删除临时文件夹的内容
  4. 删除临时文件夹
于 2015-12-24T15:42:38.127 回答