日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python通過文件頭判斷文件類型

系統 1828 0

對于提供上傳的服務器,需要對上傳的文件進行過濾。

本文為大家提供了python通過文件頭判斷文件類型的方法,避免不必要的麻煩。

分享代碼如下

            
import struct 
 
# 支持文件類型 
# 用16進制字符串的目的是可以知道文件頭是多少字節 
# 各種文件頭的長度不一樣,少半2字符,長則8字符 
def typeList(): 
  return { 
    "52617221": EXT_RAR, 
    "504B0304": EXT_ZIP} 
 
# 字節碼轉16進制字符串 
def bytes2hex(bytes): 
  num = len(bytes) 
  hexstr = u"" 
  for i in range(num): 
    t = u"%x" % bytes[i] 
    if len(t) % 2: 
      hexstr += u"0" 
    hexstr += t 
  return hexstr.upper() 
 
# 獲取文件類型 
def filetype(filename): 
  binfile = open(filename, 'rb') # 必需二制字讀取 
  tl = typeList() 
  ftype = 'unknown' 
  for hcode in tl.keys(): 
    numOfBytes = len(hcode) / 2 # 需要讀多少字節 
    binfile.seek(0) # 每次讀取都要回到文件頭,不然會一直往后讀取 
    hbytes = struct.unpack_from("B"*numOfBytes, binfile.read(numOfBytes)) # 一個 "B"表示一個字節 
    f_hcode = bytes2hex(hbytes) 
    if f_hcode == hcode: 
      ftype = tl[hcode] 
      break 
  binfile.close() 
  return ftype 
 
if __name__ == '__main__': 
  print filetype(Your-file-path)

          

常見文件格式的文件頭

文件格式 文件頭(十六進制)
JPEG (jpg) FFD8FF
PNG (png) 89504E47
GIF (gif) 47494638
TIFF (tif) 49492A00
Windows Bitmap (bmp) 424D
CAD (dwg) 41433130
Adobe Photoshop (psd) 38425053
Rich Text Format (rtf) 7B5C727466
XML (xml) 3C3F786D6C
HTML (html) 68746D6C3E
Email [thorough only] (eml) 44656C69766572792D646174653A
Outlook Express (dbx) CFAD12FEC5FD746F
Outlook (pst) 2142444E
MS Word/Excel (xls.or.doc) D0CF11E0
MS Access (mdb) 5374616E64617264204A

以上就是本文的全部內容,希望對大家的學習有所幫助。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 永新县| 成武县| 芦山县| 万州区| 博白县| 北安市| 绍兴县| 兴仁县| 赤峰市| 于田县| 凌云县| 山丹县| 英吉沙县| 太原市| 阳高县| 环江| 金湖县| 皮山县| 博乐市| 葫芦岛市| 上犹县| 尚志市| 尖扎县| 盐城市| 永济市| 定襄县| 大丰市| 祁门县| 墨脱县| 营口市| 南江县| 南开区| 天长市| 白城市| 广安市| 五莲县| 平和县| 兴文县| 萍乡市| 汪清县| 工布江达县|