13年後...
このページのPython 3に関する回答のほとんどは、時代遅れであるか不完全でした。
私が使用したMIMEタイプを取得するには:
import mimetypes
mt = mimetypes.guess_type("https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf")
if mt:
print("Mime Type:", mt[0])
else:
print("Cannot determine Mime Type")
# Mime Type: application/pdf
ライブデモ
Python ドキュメントから:
mimetypes.guess_type
( URL、厳密 = True )
urlで指定されたファイル名、パス、または URL に基づいてファイルの種類を推測します。URL は、文字列またはパスのようなオブジェクトにすることができます。
戻り値は、タイプが推測できない場合 (接尾辞がないか不明な場合) は type であるタプル、または MIME content-type ヘッダーに使用できる形式の(type, encoding)
文字列です。None
'type/subtype'
encodingはNone
、エンコードなし、またはエンコードに使用されるプログラムの名前 (例: compressまたはgzip ) です。エンコーディングは、 Content-Transfer-Encodingヘッダーとしてではなく、 Content-Encodingヘッダーとしての使用に適しています。マッピングはテーブル駆動です。エンコーディング サフィックスは大文字と小文字が区別されます。型サフィックスは、最初に大文字と小文字を区別して試行され、次に大文字と小文字を区別せずに試行されます。
オプションのstrict引数は、既知の MIME タイプのリストを IANA に登録された正式なタイプのみに制限するかどうかを指定するフラグです。strictが(デフォルト) の場合True
、IANA タイプのみがサポートされます。strictがの場合False
、非標準ではあるが一般的に使用される追加の MIME タイプも認識されます。
バージョン 3.8 で変更:パスのようなオブジェクトである url のサポートが追加されました。