最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2015年10月30日 15:46:31   投稿:lijiao  
這篇文章主要介紹了python通過文件頭判斷文件類型,需要的朋友可以參考下

對于提供上傳的服務(wù)器,需要對上傳的文件進(jìn)行過濾。

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

分享代碼如下

import struct 
 
# 支持文件類型 
# 用16進(jìn)制字符串的目的是可以知道文件頭是多少字節(jié) 
# 各種文件頭的長度不一樣,少半2字符,長則8字符 
def typeList(): 
  return { 
    "52617221": EXT_RAR, 
    "504B0304": EXT_ZIP} 
 
# 字節(jié)碼轉(zhuǎn)16進(jìn)制字符串 
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 # 需要讀多少字節(jié) 
    binfile.seek(0) # 每次讀取都要回到文件頭,不然會一直往后讀取 
    hbytes = struct.unpack_from("B"*numOfBytes, binfile.read(numOfBytes)) # 一個(gè) "B"表示一個(gè)字節(jié) 
    f_hcode = bytes2hex(hbytes) 
    if f_hcode == hcode: 
      ftype = tl[hcode] 
      break 
  binfile.close() 
  return ftype 
 
if __name__ == '__main__': 
  print filetype(Your-file-path)

常見文件格式的文件頭

文件格式 文件頭(十六進(jìn)制)
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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • python占位符輸入方式實(shí)例

    python占位符輸入方式實(shí)例

    在本篇文章中小編給大家分享了關(guān)于python占位符怎么輸入的相關(guān)知識點(diǎn)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2019-05-05
  • OpenCV-Python實(shí)現(xiàn)輪廓的特征值

    OpenCV-Python實(shí)現(xiàn)輪廓的特征值

    輪廓自身的一些屬性特征及輪廓所包圍對象的特征對于描述圖像具有重要意義。本篇博文將介紹幾個(gè)輪廓自身的屬性特征及輪廓包圍對象的特征,感興趣的可以了解一下
    2021-06-06
  • Python 分享10個(gè)PyCharm技巧

    Python 分享10個(gè)PyCharm技巧

    這篇文章主要介紹了Python 分享10個(gè)PyCharm技巧,今天要跟大家分享幾個(gè)PyCharm小技巧,幫助大家提升工作效率!,需要的朋友可以參考下
    2019-07-07
  • 手把手教你jupyter?notebook更換環(huán)境的方法

    手把手教你jupyter?notebook更換環(huán)境的方法

    在日常使用jupyter-notebook時(shí),可能會碰到需要切換不同虛擬環(huán)境的場景,下面這篇文章主要給大家介紹了關(guān)于jupyter?notebook更換環(huán)境的方法,需要的朋友可以參考下
    2023-05-05
  • Django接受前端數(shù)據(jù)的幾種方法總結(jié)

    Django接受前端數(shù)據(jù)的幾種方法總結(jié)

    下面小編就為大家?guī)硪黄狣jango接受前端數(shù)據(jù)的幾種方法總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • 詳解Python中的相對導(dǎo)入和絕對導(dǎo)入

    詳解Python中的相對導(dǎo)入和絕對導(dǎo)入

    絕對導(dǎo)入是指跳過包內(nèi),直接搜索 sys.path ,在sys.path的基礎(chǔ)上進(jìn)行我們的模塊搜索。相對導(dǎo)入是指先包內(nèi),再包外,再,,,那么下面這篇文章主要給大家介紹了Python中的相對導(dǎo)入和絕對導(dǎo)入,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • Python利用Charles 實(shí)現(xiàn)全部自動答題思路流程分析

    Python利用Charles 實(shí)現(xiàn)全部自動答題思路流程分析

    這篇文章主要介紹了Python利用Charles 實(shí)現(xiàn)全部自動答題思路流程分析,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Qt通過QGraphicsview實(shí)現(xiàn)簡單縮放及還原效果

    Qt通過QGraphicsview實(shí)現(xiàn)簡單縮放及還原效果

    本文主要介紹通過QGraphicsview實(shí)現(xiàn)簡單的縮放以及縮放后還原原始大小,通過scale可以對view進(jìn)行放大或縮小,具體內(nèi)容詳情跟隨小編一起看看吧
    2021-09-09
  • Python+OpenCV實(shí)現(xiàn)圖片及視頻中選定區(qū)域顏色識別

    Python+OpenCV實(shí)現(xiàn)圖片及視頻中選定區(qū)域顏色識別

    這篇文章主要為大家詳細(xì)介紹了如何利用Python+OpenCV實(shí)現(xiàn)圖片及視頻中選定區(qū)域顏色識別功能,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-07-07
  • Matplotlib animation模塊實(shí)現(xiàn)動態(tài)圖

    Matplotlib animation模塊實(shí)現(xiàn)動態(tài)圖

    這篇文章主要介紹了Matplotlib animation模塊實(shí)現(xiàn)動態(tài)圖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02

最新評論

苏尼特右旗| 昭通市| 盈江县| 岳阳市| 灵山县| 玛曲县| 忻州市| 阜平县| 从江县| 玛曲县| 金堂县| 阿鲁科尔沁旗| 柘城县| 新巴尔虎左旗| 社旗县| 宿州市| 阿克陶县| 肇州县| 汨罗市| 鄯善县| 绩溪县| 方城县| 开封市| 明星| 铜梁县| 滕州市| 楚雄市| 山西省| 高青县| 莱阳市| 常山县| 平定县| 望都县| 洛南县| 龙川县| 泰顺县| 会昌县| 南宫市| 平泉县| 昭通市| 东台市|