首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python控制winzip解压zipx

用python控制winzip解压zipx
EN

Stack Overflow用户
提问于 2015-12-13 04:14:06
回答 1查看 864关注 0票数 0

如果解压缩文件符合条件,我需要在运行时将许多zipx文件解压缩到目录中。条件是“如果存在相同名称的文件,则只有当解压缩文件更大时,它才具有相同的名称”。

我想用win32com来控制winzip,但是我找不到使用COM浏览器(win32com\client\combrowse.py)的Object.Name。如果能找到这个winzip对象可以使用的方法,那也很好。

有人能帮助我选择的方式或建议一个更容易的选择来解决所描述的问题。坦斯克。

EN

回答 1

Stack Overflow用户

发布于 2015-12-24 15:42:38

忘记win32com吧。相反,

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

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

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

  1. 擦除温度文件夹
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34247918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档