700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python接口自动化(三十) 上传文件时自动判断文件类型(filetype)

python接口自动化(三十) 上传文件时自动判断文件类型(filetype)

时间:2023-01-21 18:10:29

相关推荐

python接口自动化(三十)  上传文件时自动判断文件类型(filetype)

前言

如何判断一个文件的类型呢,判断这个文件是png还是jpg,还是MP3文件?filetype包是python用来判断文件类型的依赖包,github地址:/h2non/filetype.py

filetype安装

pip install filetype

简介

一个小巧自由开放Python开发包,主要用来获得文件类型。包要求python 3.+

功能特色

简单友好的API支持宽范围文件类型提供文件扩展名和MIME类型判断文件的MIME类型扩展新增通过文件(图像、视频、音频...)简单分析可插拔:添加新的自定义类型的匹配快,即使处理大文件只需要前261个字节表示的最大文件头,这样你就可以通过一个单字节依赖自由(只是Python代码,没有C的扩展,没有libmagic绑定)跨平台文件识别

使用示例

import filetypedef main():kind = filetype.guess('D:\\生活\\儿歌\\儿歌-拔萝卜.mp3')if kind is None:print('Cannot guess file type!')returnprint('File extension: %s' % kind.extension)print('File MIME type: %s' % kind.mime)if __name__ == '__main__':main()

运行结果

结合文件上传使用示例

requests_toolbelt使用参考/canglongdao/p/13440314.html

# coding:utf-8from requests_toolbelt import MultipartEncoderimport requestsm = MultipartEncoder(fields = [('source', ('ch', open("d:\\ch.jpg","rb"), 'image/jpep')),('source', ('hc', open("d:\\hc.jpg","rb"), 'image/jpeg')),])r = requests.post('/post',data=m,headers={'Content-Type': m.content_type})

imgFile后面的参数

("1.png",open("d:\\1.png","rb"),"image/png")

每次都需要根据不同的文件类型取修改成对应的mime类型

接下来可以用上面的自动获取文件类型的方法,写个函数,只需要传文件的路径即可自动获取

import filetypeimport osfrom requests_toolbelt import MultipartEncoderimport requestsdef up(filepath="d:\\ch.jpg"):#根据文件路径,自动获取文件名称和文件mime类型a=filetype.guess(filepath)if a is None:print('Cannot guess file_type!')#媒体类型typee=a.mime#文件真实路径realp=os.path.realpath(filepath)#获取文件名fname=os.path.split(filepath)[-1]return (fname,open(realp,"rb"),typee)m=MultipartEncoder(fields=[('source',up()),])r=requests.post('/post',data=m,headers={'Content-Type':m.content_type})print(r.text)

运行结果

这样就可以只关注文件的路径,不需要关注具体类型了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。