我需要编写一个 python 脚本,从 FTP 服务器检索 tar.Z 文件,然后在 Windows 机器上解压缩它们。tar.Z,如果我理解正确的话,是 Unix 中压缩命令的结果。
Python 似乎不知道如何处理这些,它不是 gz,也不是 bz2 或 zip。有谁知道可以处理这些的图书馆?
提前致谢
我需要编写一个 python 脚本,从 FTP 服务器检索 tar.Z 文件,然后在 Windows 机器上解压缩它们。tar.Z,如果我理解正确的话,是 Unix 中压缩命令的结果。
Python 似乎不知道如何处理这些,它不是 gz,也不是 bz2 或 zip。有谁知道可以处理这些的图书馆?
提前致谢
如果 GZIP - 应用程序 - 可以处理它,您有两个选择。
试试 Pythongzip
库。它可能会起作用。
用来为你subprocess Popen
奔跑gzip
。
它可能是一个 InstallShield .Z 文件。您可能想要使用 InstallShield 解压缩它并提取 .TAR 文件。同样,您也许可以subprocess Popen
用来处理文件。
它也可能是“LZW 压缩文件”。看看这个库,它可能会有所帮助。
AFAIK 不存在解压缩的普通 Python 模块,但如果有一些知识,构建一个模块是可行的:
几乎所有必要的信息都可以在 unarchiver CompressAlgorithm中找到。来自维基百科的关于自适应 LZW的附加信息,也许还有压缩手册页。
基本上,您读取前三个字节(前两个是魔术字节)来修改您的算法,然后开始读取和解压缩。
有很多位摆弄(.Z 文件开始有 9 位标记,最多 16 位标记,然后将符号表重置为初始 256+2 值),您可能会处理二进制操作(&
, <<=
ETC)。
由于您针对特定平台(Windows),最简单的解决方案可能是在系统调用中运行 gzip:http ://www.gzip.org/#exe
您的项目中是否还有其他要求需要在 Python 中完成解压?