欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

分享代碼如下

import struct 
 
# 支持文件類型 
# 用16進制字符串的目的是可以知道文件頭是多少字節(jié) 
# 各種文件頭的長度不一樣,少半2字符,長則8字符 
def typeList(): 
  return { 
    "52617221": EXT_RAR, 
    "504B0304": EXT_ZIP} 
 
# 字節(jié)碼轉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 # 需要讀多少字節(jié) 
    binfile.seek(0) # 每次讀取都要回到文件頭,不然會一直往后讀取 
    hbytes = struct.unpack_from("B"*numOfBytes, binfile.read(numOfBytes)) # 一個 "B"表示一個字節(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)

常見文件格式的文件頭

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

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

相關文章

  • Python+Pygame實現之走四棋兒游戲的實現

    Python+Pygame實現之走四棋兒游戲的實現

    大家以前應該都聽說過一個游戲:叫做走四棋兒。直接在家里的水泥地上用燒完的炭火灰畫出幾條線,擺上幾顆石頭子即可。當時的火爆程度可謂是達到了一個新的高度。本文將利用Pygame實現這一游戲,需要的可以參考一下
    2022-07-07
  • pyqt5利用pyqtDesigner實現登錄界面

    pyqt5利用pyqtDesigner實現登錄界面

    這篇文章主要為大家詳細介紹了pyqt5利用pyqtDesigner實現登錄界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • python中round函數如何使用

    python中round函數如何使用

    在本篇文章里小編給大家整理了關于python的round函數用法總結內容,需要的朋友們可以學習下。
    2020-06-06
  • Python3 加密(hashlib和hmac)模塊的實現

    Python3 加密(hashlib和hmac)模塊的實現

    本篇文章主要介紹了Python3 加密(hashlib / hmac)模塊的實現,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python輸入輸出從鍵盤到文件實戰(zhàn)全面指南

    Python輸入輸出從鍵盤到文件實戰(zhàn)全面指南

    這篇文章主要為大家介紹了Python輸入輸出從鍵盤到文件實戰(zhàn)全面指南,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • python基于C/S模式實現聊天室功能

    python基于C/S模式實現聊天室功能

    這篇文章主要為大家詳細介紹了python基于C/S模式實現聊天室功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python mysql項目實戰(zhàn)及框架搭建過程

    python mysql項目實戰(zhàn)及框架搭建過程

    本文給大家分享python mysql項目實戰(zhàn)框架搭建過程,通過實例代碼給大家講解python mysql項目實戰(zhàn)的相關知識,需要的朋友參考下吧
    2021-06-06
  • 獲取python運行輸出的數據并解析存為dataFrame實例

    獲取python運行輸出的數據并解析存為dataFrame實例

    這篇文章主要介紹了獲取python運行輸出的數據并解析存為dataFrame實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 詳解python中的json的基本使用方法

    詳解python中的json的基本使用方法

    本篇文章主要介紹了python中的json的基本使用方法,在Python中使用json的時候,主要也就是使用json模塊,json是以一種良好的格式來進行數據的交互,有興趣的可以了解一下。
    2016-12-12
  • Pandas數據清洗函數總結

    Pandas數據清洗函數總結

    本文主要介紹了Pandas數據清洗函數總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01

最新評論