壓縮文件可以分爲以下邏輯組:
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文件的幻數都不正確。 –