压缩文件可以分为以下逻辑组:
a。您正在使用的操作系统(* ix,Win)等。
b。不同类型的压缩算法(即.zip,.Z,.bz2,.rar,.gzip)。至少从主要使用的压缩文件的标准列表中获得。
c。然后我们有焦油球机制 - 我认为没有压缩。但它更像一个串联。Python - 识别压缩文件类型和解压缩的机制
现在,如果我们开始寻址上述一组压缩文件,
a。选项(a)将被python关注,因为它是独立于平台的语言。 b。选项(b)和(c)似乎有问题。
我需要做什么
如何识别文件类型(压缩类型),然后联合国对其进行压缩?
像:
fileType = getFileType(fileName)
switch(fileType):
case .rar: unrar....
case .zip: unzip....
etc
因此,根本的问题是我们如何识别基于文件的压缩算法(假设扩展不提供或不正确的)?有没有什么具体的方式来做到这一点在Python中?
这很好地标识了文件类型。但是,您应该返回通过打开文件并允许访问创建的对象。否则,您将最终再次测试文件类型以查看您应该处理的文件类型。这可以通过创建一个可以处理所有支持的文件类型的通用抽象来避免。该模式称为“工厂”。 – Ber
您也可以使用此网站搜索您想要的签名:http://www.filesignatures.net/index.php –
zip文件格式允许将任意数据附加到文件的开头,因此检查所有情况下,zip文件的幻数都不正确。 –