使用python解压缩tar.Z文件?

时间:2010-02-16 10:41:33

标签: python tar compression

我需要编写一个python脚本,从FTP服务器检索tar.Z文件,并在Windows机器上解压缩它们。 tar.Z,如果我理解正确是Unix中 compress 命令的结果。

Python似乎不知道如何处理这些,它不是gz,也不是bz2或zip。有谁知道一个可以处理这些的库吗?

提前致谢

3 个答案:

答案 0 :(得分:1)

如果GZIP - 应用程序 - 可以处理它,你有两个选择。

  1. 试用Python gzip库。它可能有用。

  2. 使用subprocess Popen为您运行gzip

  3. 它可能是InstallShield .Z文件。您可能希望使用InstallShield解压缩并解压缩.TAR文件。同样,您可以使用subprocess Popen来处理文件。

    它也可能是“LZW压缩文件”。看看这个库,它可能会有所帮助。

    http://www.chilkatsoft.com/compression-python.asp

答案 1 :(得分:0)

由于您定位到特定平台(Windows),最简单的解决方案可能是在系统调用中运行gzip:http://www.gzip.org/#exe

您的项目中是否还有其他要求需要在Python中完成解压缩?

答案 2 :(得分:0)

解压缩的普通Python模块是不存在的,AFAIK,但是根据一些知识构建一个是可行的:

  • .Z格式标头规范
  • .Z压缩格式

几乎所有必要的信息都可以找到the unarchiver CompressAlgorithm。来自维基百科的adaptive LZW以及compress man page的其他信息。

基本上,你读取前三个字节(前两个是魔术字节)来修改算法,然后开始读取和解压缩。

有很多小小的摆弄(.Z文件开始有9位令牌,最多16位,然后将符号表重置为最初的256 + 2值),这可能你会处理做二进制操作(&<<=等)。