1

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

Python 似乎不知道如何处理这些,它不是 gz,也不是 bz2 或 zip。有谁知道可以处理这些的图书馆?

提前致谢

4

3 回答 3

1

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

  1. 试试 Pythongzip库。它可能会起作用。

  2. 用来为你subprocess Popen奔跑gzip

它可能是一个 InstallShield .Z 文件。您可能想要使用 InstallShield 解压缩它并提取 .TAR 文件。同样,您也许可以subprocess Popen用来处理文件。

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

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

于 2010-02-16T11:20:12.237 回答
0

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

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

几乎所有必要的信息都可以在 unarchiver CompressAlgorithm中找到。来自维基百科的关于自适应 LZW的附加信息,也许还有压缩手册页

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

有很多位摆弄(.Z 文件开始有 9 位标记,最多 16 位标记,然后将符号表重置为初始 256+2 值),您可能会处理二进制操作(&, <<=ETC)。

于 2010-02-18T21:20:03.477 回答
0

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

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

于 2010-02-16T10:46:39.270 回答