国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2019-11-25 17:03:09
字體:
來源:轉載
供稿:網友

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

本文為大家提供了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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海城市| 乌海市| 岳西县| 新安县| 高青县| 连江县| 乌海市| 武鸣县| 东港市| 海林市| 开原市| 北流市| 聂拉木县| 株洲市| 白沙| 双江| 新兴县| 长乐市| 大石桥市| 丰台区| 高邑县| 长寿区| 中超| 惠来县| 安泽县| 渭南市| 阿荣旗| 石首市| 日喀则市| 绩溪县| 新泰市| 萨嘎县| 礼泉县| 承德市| 文山县| 越西县| 广丰县| 西安市| 迁西县| 凌源市| 射阳县|