Python使用magic判断文件MIME类型

news/2024/11/16 14:30:43/

文章目录

  • 官网
  • 安装
  • 使用
    • 判断文件的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-bintype_info = magic.from_file("./data/123.pdf")
      print('file_type: %s' % type_info)#file_type: PDF document, version 1.6type_info = magic.from_buffer(open("./data/123.pdf",'rb').read(1024))
      print('file_type: %s' % type_info)#file_type: PDF document, version 1.6type_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.ppmy.cn/news/60.html

相关文章

【每日一句】名人金句学英语(20221130)

原文: Life is a process of becoming, a combination of states we have to go through. Where people fail is that they wish to elect a state and remain in it. This is a kind of death. ‧Anas Nin 人生是一个转变的过程,是由我们必须经历的…

rubbitmq 图形界面使用 常用六种通信模式 Simple-Work-fanout-direct-topic-headers

阿里云服务器添加rubbitmq需要开启端口:rabbitmq阿里云服务器开放端口号 Rubbitmq地址: 服务器地址:15672 1.简单模式Simple 一个生产者、一个消费者,不需要设置交换机(使用默认的交换机) 2.工作队列模式Work Queue 一个生产者、多个消费者&a…

C数组

第1关:利用数组进行排序 任务描述 本关任务:输入10个整数,用选择排序对10个整数进行排序,然后按由小到大的顺序输出这10个数。 相关知识 相同类型的变量的集合,放在一起处理比较方便。这种情况下可以使用数组。本关就来学习数组的基本知识。 一维数组 在程序中可以使用…

COLMAP生成MVSNet数据集

一. colmap2mvsnet.py COLMAP可以给图像数据集标定一套相机外参及视图选择。如果想用COLMAP导出的结果输入MVSNet测试,需要把数据集(图片、相机参数等)转化为MVSNet的输入格式。MVSNet的作者yaoyao在Github上提供了colmap2mvsnet.py代码&…

【JQuery_Ajax_方法使用】Ajax的JQuery函数/方法

JQuery Ajax get() <script> $.get(url, data, success, dataType); // dataType ---text ,json,html,xml </script>类似的例子

让学前端不再害怕英语单词(三)

前两章直通车↓↓↓ 让学前端不再害怕英语单词&#xff08;一&#xff09; 让学前端不再害怕英语单词&#xff08;二&#xff09; 由于前两章都反响强烈&#xff0c;都上了全站的热榜&#xff0c;所以今天打算把第三章也写出来 第三章我们主要讲一下css中的伪类的英语单词还有…

VLAN划分-----计算机网络

拓扑图 LSW1与LSW2都是三层交换机&#xff0c;现在两台交换机分别连着两台pc。 其中&#xff1a; LSW1的0/0/1端口连着pc1&#xff0c;0/0/2连着pc2&#xff0c;0/0/3端口连着lsw2。 LSW2的0/0/1端口连着pc3&#xff0c;0/0/2连着pc4&#xff0c;0/0/3端口连着lsw1。 不同vlan…

linux文件系统卷标管理

显示文件系统的卷标&#xff1a; e2label /dev/hda5 /home 给磁盘设置加上卷标&#xff1a; mke2fs -j -L iscsi /dev/sdb1 iscsi卷标名称&#xff0c;/dev/sdb1 磁盘设备 更改文件系统卷标&#xff1a; e2label /dev/sdb1 iscsi66 显示文件系统的卷标&#xff1a; e2label /de…