通过使用python控制winzip解压缩zipx

时间:2015-12-13 04:14:06

标签: python unzip win32com winzip

我需要将多个zipx文件解压缩到目录中,同时检查运行是否符合条件的解压缩文件。条件是"如果有相同名称的文件超出它,则仅当解压缩文件较大时才会#34;。

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

任何人都可以帮助我选择的方式或建议更简单的选项来解决所描述的问题。 Thansk。

1 个答案:

答案 0 :(得分:1)

忘记win32com。相反,

  1. 创建目标文件夹
  2. 循环zipx档案;每一个人:
    1. 使用Python的临时文件模块创建临时文件夹
    2. 使用子进程模块在zipx存档上运行解压缩实用程序(处理zipx格式),并使用命令行选项解压缩到创建的临时文件夹
    3. 使用shutil模块将该文件夹中的每个解压缩文件复制到第一步创建的公共目标文件夹,如果文件满足条件。对于文件大小,请使用Path.stat()。st_size或os.path.get_size()。
    4. 擦除临时文件夹
  3. 因此,每个存档都会解压缩到另一个临时文件夹,但所有提取的文件都会移动到一个公共文件夹。或者,您可以对所有归档使用相同的临时文件夹,但在每次迭代结束时清空文件夹,并在脚本末尾删除临时文件夹。

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