Python使用magic判断文件MIME类型

news2024/10/6 16:22:31

文章目录

  • 官网
  • 安装
  • 使用
    • 判断文件的MIME类型
    • 支持中文的代码
  • 问题

官网

  • GitHub - ahupp/python-magic: A python wrapper for libmagic

安装

  • pip install python-magic 
    pip install python-magic-bin
    
  • img

使用

判断文件的MIME类型

  • 代码

    • # encoding=utf-8
      import magic #pip install python-magic python-magic-bin
      
      
      type_info = magic.from_file("./data/123.pdf")
      print('file_type: %s' % type_info)#file_type: PDF document, version 1.6
      
      type_info = magic.from_buffer(open("./data/123.pdf",'rb').read(1024))
      print('file_type: %s' % type_info)#file_type: PDF document, version 1.6
      
      type_info = magic.from_file("./data/123.pdf", mime=True)
      print('file_type: %s' % type_info)#file_type: application/pdf
      
    • img

    • 需要注意的是,这种方法路径中不能出现中文,否则会报错

      • img

支持中文的代码

  • def distinguish_MIME_type(file_path):      #查看文件的MIME格式类型(支持中文) 
        import magic  # pip install python-magic python-magic-bin 
        mime_type = magic.from_buffer(open(file_path, 'rb').read(1024), mime=True) 
     
        return mime_type 
     
     
    file_path = 'E:/Documents/Desktop/中国.jpg' #获得选择好的文件 
    file_type = distinguish_MIME_type(file_path) 
    print("file_type:", file_type)
    
  • img

  • img

问题

  • magic不支持中文路径的文件名

    • img

    • 那就不要单纯使用文件名来判断了,而是使用打开文件的方式来判断

      • import magic #pip install python-magic python-magic-bin 
         
        file_path = 'E:/Documents/Desktop/中国.jpg' #获得选择好的文件 
        type_info = magic.from_buffer(open(file_path,'rb').read(1024), mime=True)
        
      • img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/45926.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

希尔贝壳受邀参加IEEE自动语音识别与理解研讨会-ASRU 2021

ASRU 2021 IEEE Automatic Speech Recognition and Understanding Workshop(2021年IEEE自动语音识别与理解研讨会,以下简称ASRU),将于2021年12月13日至17日在哥伦比亚卡塔赫纳举行。 ASRU 研讨会是IEEE语音和语言处理技术委员会(…

领悟《信号与系统》之 周期信号的傅里叶变换计算

周期信号的傅里叶变换计算一、周期信号的傅里叶变换存在的条件二、周期信号的傅里叶变换例题:一、周期信号的傅里叶变换存在的条件 典型非周期信号(如指数信号,矩形信号等)都是满足绝对可积(或绝对可和)条…

IDEA的日常快捷键大全

更多内容在:https://javaxiaobear.gitee.io/ ​​​​​​第1组:通用型 说明 快捷键 复制代码-copy ctrl c 粘贴-paste ctrl v 剪切-cut ctrl x 撤销-undo ctrl z 反撤销-redo ctrl shift z 保存-save all ctrl s 全选-select all …

(2)点云库处理学习——剔除点云值

1、主要参考 1.1参考地址 (1) 点云离群点剔除 — open3d python_Coding的叶子的博客-CSDN博客_离群点去除 (2) open3d之点云异常值去除(笔记5)_Satellite_H的博客-CSDN博客 (3)斯坦福经典兔子的点云数据下载地址 下载地址 Model : Bunny 1.2兔子…

3D视觉识别案例:3D无序棒料抓取,阀体圆环上下料,电机定子上料

3D无序棒料抓取 某知名汽车行业 项目背景 长春某知名汽车行业,需求3D视觉实现圆形棒材的上料自动化。 作业流程 钢棒依次经过剪切/锯切下料,从深筐中抓取,先放置在V型二次定位平台上,再从平台抓到输送线上,目标工…

[附源码]SSM计算机毕业设计新冠疫苗线上预约系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

超算,先进计算未来的研究方向有哪些?

超算是一个非常有趣的方向,当人们仰天长望思索宇宙大爆炸和起源时,超算便成为了非常重要的一个研究途径,利用超算平台对中国FAST天眼射电望远镜捕捉到的海量信号进行分析和处理,帮助中科院探索发现了诸如脉冲星、最大原子气体、快…

如何将报告从 JasperReports 导入到 FastReport .NET?

FastReport.NET官方版下载 我们在 JasperReports 添加了一个新的导入功能,如果要使用它,需要到 FastReport .NET 设计器中的“文件”菜单并选择“打开...”。在出现的窗口中,选择过滤器“JasperReports 文件 (*.jrxml)”。所选文件将自动转换…

基于Apache-DButils以及Druid(德鲁伊)与数据库交互实现的一个项目:满汉楼

基于Apache-DButils以及Druid(德鲁伊)与数据库交互实现的一个项目:满汉楼 每博一文案 张小贤曾说过: 你不过是做自己喜欢做的事,过自己喜欢过的生活。 若有人因为你喜欢做的事而觉得恶心和取笑你,那是他们的事。是呀,生活是苦&am…

蓝海创意云亮相2022南京融交会,打造沉浸式元宇宙互动体验

11月24日,2022中国(南京)文化和科技融合成果展览交易会在南京国际展览中心正式开幕,展会聚焦文化数字化战略,集中展示文化数据专网、数字化公共文化服务、“元宇宙”等数字文化新基建、新服务、新场景、新体验。 苏州…

第十三章《集合》第3节:Set集合

Set也是Collection的子接口,它定义了另一种形式的集合,专业上称之为Set集合。Set集合的特点如图13-9所示。 图13-9 Set类型集合 从图13-9可以看出:Set类型的集合就像是一个装苹果的筐子,程序员只要把元素存入这个筐子即可。集合中的元素像是胡乱堆积在一起,因此元素没有索…

迷宫-蓝桥云课,python实现

X 星球的一处迷宫游乐场建在某个小山坡上。它是由 10 \times 101010 相互连通的小房间组成的。 房间的地板上写着一个很大的字母。我们假设玩家是面朝上坡的方向站立,则: LL 表示走到左边的房间,RR 表示走到右边的房间,UU 表示走…

HTTPS —— HTTPS的加密方式

JavaEE传送门JavaEE HTTP —— HTTP 协议中的细节(超详细!!) HTTP —— HTTP 响应详解, 构造 HTTP 请求 目录HTTPS"加密"对称加密非对称加密证书总结HTTPS “加密” 明文: 要传递的原始信息 密文: 经过加密后的信息 密钥: 将明文加密的方法 (在加密和解密中起到…

京东APP技术解密:移动端秒级配置触达平台-Switchquery

原文已同步发表在京东零售技术公众号:mp.weixin.qq.com/s/hvsFwsQHT… 一 背景 随着移动互联网的快速发展,为满足各类用户及人群的体验需求,移动端的开发者们开发了丰富多彩的体验与功能。同时对于快速控制各类功能的切换、灰度,降级等能力…

纠正一下网上文章所说“利用RPC绕过CFG”的错误说法

纠正误区 网上说“利用RPC绕过CFG”的说法是不正确的,我先给出自己的观点,后面再说我的分析。网上有好几篇分析CVE-2021-26411的文章,对绕过CFG一律都说是利用RPC。其实在这个漏洞场景下,攻击者只不过是借助RPC获得执行任意系统函…

Nginx配置Https证书

大致的流程如下 1.申请Https证书,绑定域名信息; 如果您有自己的服务器或者购买云服务器,可在相关方平台申请SSL证书,申请后下载相关证书文件即可,如下图: 解压缩后发现可以得到如下文件: 由于我们要使用Nginx配置SSL…

美团面试应届生第二问:Volatile有什么作用?

文章目录volatile有什么作用?可见性证明指令重排证明不能保证原子性证明Volatile与Synchronized的区别volatile有什么作用? 保证线程的可见性禁止指令重排但是不能保证原子性 可见性证明 有如下静态成员变量num,初始值为0;有两…

Nginx的配置

1运行中的Nginx进程间的关系 1.在正式提供服务的产品环境下,部署Nginx时都是使用一个master进程来管理多个worker进程,一般情况下,worker进程的数量与服务器上的CPU核心数相等。每一个worker进程都是繁忙的,它们在真正地提供互联…

RabbitMQ 快速入门-消息的收发

RabbitMQ 快速入门-消息的收发准备工作一、Connection 方式1. 生产者测试类2. 消费者测试类注意二、RabbitTemplate 方式1. 生产者测试类2. 创建队列3. 消费者注意准备工作 推荐创建两个 SpringBoot 项目,一个作为生产者,另一个作为消费者 也可使用 Ma…

数据趣事:历史最高温的是新疆吐鲁番?重庆45℃高温仅排全国第二

全球最冷的地方在哪?最热的又在哪?中国最冷的城市不是哈尔滨而是意想不到的的乌鲁木齐,历史上最高温的省市不是重庆而是新疆吐鲁番......跟随天气最趣事儿大屏一起了解有趣的天气数据吧! 最高温的省市是新疆吐鲁番,曾…