python接口自动化(三十) 上传文件时自动判断文件类型(filetype)
生活随笔
收集整理的這篇文章主要介紹了
python接口自动化(三十) 上传文件时自动判断文件类型(filetype)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
如何判斷一個文件的類型呢,判斷這個文件是png還是jpg,還是MP3文件?filetype包是python用來判斷文件類型的依賴包,github地址:https://github.com/h2non/filetype.py
filetype安裝
pip install filetype
簡介
一個小巧自由開放Python開發包,主要用來獲得文件類型。包要求python 3.+
功能特色
簡單友好的API
支持寬范圍文件類型
提供文件擴展名和MIME類型判斷
文件的MIME類型擴展新增
通過文件(圖像、視頻、音頻...)簡單分析
可插拔:添加新的自定義類型的匹配
快,即使處理大文件
只需要前261個字節表示的最大文件頭,這樣你就可以通過一個單字節
依賴自由(只是Python代碼,沒有C的擴展,沒有libmagic綁定)
跨平臺文件識別
使用示例
import filetype
def main():
kind = filetype.guess('D:\生活\兒歌\兒歌-拔蘿卜.mp3')
if kind is None:
print('Cannot guess file type!')
return
print('File extension: %s' % kind.extension)
print('File MIME type: %s' % kind.mime)
if __name__ == '__main__':
main()
運行結果
結合文件上傳使用示例
requests_toolbelt使用參考https://www.cnblogs.com/canglongdao/p/13440314.html
# coding:utf-8
from requests_toolbelt import MultipartEncoder
import requests
m = MultipartEncoder(
fields = [
('source', ('ch', open("d:\ch.jpg","rb"), 'image/jpep')),
('source', ('hc', open("d:\hc.jpg","rb"), 'image/jpeg')),
]
)
r = requests.post('http://httpbin.org/post',
data=m,
headers={'Content-Type': m.content_type})
imgFile后面的參數
("1.png",open("d:\1.png","rb"),"image/png")
每次都需要根據不同的文件類型取修改成對應的mime類型
接下來可以用上面的自動獲取文件類型的方法,寫個函數,只需要傳文件的路徑即可自動獲取
import filetype
import os
from requests_toolbelt import MultipartEncoder
import requests
def 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('http://httpbin.org/post',data=m,headers={'Content-Type':m.content_type})
print(r.text)
運行結果
這樣就可以只關注文件的路徑,不需要關注具體類型了?!?/p>
越努力,越幸運!??!
good good study,day day up?。?
總結
以上是生活随笔為你收集整理的python接口自动化(三十) 上传文件时自动判断文件类型(filetype)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pygame开发PC端微信打飞机游戏
- 下一篇: Keyboard驱动介绍