• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python通过文件头判断文件类型

python通过文件头判断文件类型

作者:lijiao 字体:[增加 减小] 来源:互联网

lijiao 通过本文主要向大家介绍了python 判断文件类型,python 文件类型,python获取文件类型,python 查看文件类型,python数据类型等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

对于提供上传的服务器,需要对上传的文件进行过滤。

本文为大家提供了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)
</div>

常见文件格式的文件头

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

以上就是本文的全部内容,希望对大家的学习有所帮助。

</div>

您可能想查找下面的文章:

  • python通过文件头判断文件类型

相关文章

  • python简单获取数组元素个数的方法
  • Python 专题一 函数的基础知识
  • Python获取系统默认字符编码的方法
  • python遍历数组的方法小结
  • 详解Python中的日志模块logging
  • python基础教程之类class定义使用方法
  • Python中的rjust()方法使用详解
  • 使用python遍历指定城市的一周气温
  • 简单学习Python time模块
  • Python中的zipfile模块使用详解

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python函数可变参数定义及其参数传递方式实例详解
    • Python @property装饰器原理解析
    • 详解Python的Lambda函数与排序
    • Python的requests网络编程包使用教程
    • Python的Tornado框架实现异步非阻塞访问数据库的示例
    • python正则分组的应用
    • 实例讲解Python中global语句下全局变量的值的修改
    • 简单介绍Python中的JSON模块
    • NumPy统计函数的实现方法
    • 介绍Python的Urllib库的一些高级用法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有