日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python如何区分文件类型_python通过文件头判断文件类型

發布時間:2025/3/15 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python如何区分文件类型_python通过文件头判断文件类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

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

時間: 2015-10-27

總結

以上是生活随笔為你收集整理的python如何区分文件类型_python通过文件头判断文件类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。