mimetypes —ファイル名をMIMEタイプにマップします—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/3.8/library/mimetypes
移動先:案内検索

mimetypes —ファイル名をMIMEタイプにマップします

ソースコード: :source: `Lib / mimetypes.py`



mimetypes モジュールは、ファイル名またはURLと、ファイル名拡張子に関連付けられたMIMEタイプとの間で変換を行います。 変換は、ファイル名からMIMEタイプへ、およびMIMEタイプからファイル名拡張子へと提供されます。 後者の変換では、エンコーディングはサポートされていません。

このモジュールは、1つのクラスといくつかの便利な関数を提供します。 関数はこのモジュールへの通常のインターフェースですが、一部のアプリケーションはクラスにも関心がある場合があります。

以下で説明する機能は、このモジュールの主要なインターフェースを提供します。 モジュールが初期化されていない場合、 init()が設定した情報に依存していれば、 init()を呼び出します。

mimetypes.guess_type(url, strict=True)

url で指定されたファイル名、パス、またはURLに基づいてファイルのタイプを推測します。 URLは、文字列またはパスのようなオブジェクトにすることができます。

戻り値はタプル(type, encoding)です。タイプを推測できない場合(サフィックスがないか不明な場合)、 typeNone、または'type/subtype'、MIME content-type ヘッダーに使用できます。

encodingNoneであり、エンコードなし、またはエンコードに使用されるプログラムの名前(例: compress または gzip )。 エンコーディングは、 Content-Encoding ヘッダーとしての使用に適しており、 notContent-Transfer-Encoding ヘッダーとしての使用に適しています。 マッピングはテーブル駆動型です。 エンコーディングサフィックスでは大文字と小文字が区別されます。 タイプサフィックスは、最初に大文字と小文字を区別して試行され、次に大文字と小文字を区別せずに試行されます。

オプションの strict 引数は、既知のMIMEタイプのリストがIANA に登録されている公式タイプのみに制限されるかどうかを指定するフラグです。 strictTrue(デフォルト)の場合、IANAタイプのみがサポートされます。 strictFalseの場合、いくつかの追加の非標準であるが一般的に使用されるMIMEタイプも認識されます。

バージョン3.8で変更: パスのようなオブジェクトであるURLのサポートが追加されました。

mimetypes.guess_all_extensions(type, strict=True)

type で指定されたMIMEタイプに基づいてファイルの拡張子を推測します。 戻り値は、先頭のドット('.')を含む、可能なすべてのファイル名拡張子を示す文字列のリストです。 拡張機能が特定のデータストリームに関連付けられていることは保証されていませんが、 guess_type()によってMIMEタイプ type にマップされます。

オプションの strict 引数は、 guess_type()関数と同じ意味です。

mimetypes.guess_extension(type, strict=True)

type で指定されたMIMEタイプに基づいてファイルの拡張子を推測します。 戻り値は、先頭のドット('.')を含むファイル名拡張子を与える文字列です。 拡張機能が特定のデータストリームに関連付けられていることは保証されていませんが、 guess_type()によってMIMEタイプ type にマップされます。 タイプの拡張子が推測できない場合は、Noneが返されます。

オプションの strict 引数は、 guess_type()関数と同じ意味です。

モジュールの動作を制御するために、いくつかの追加機能とデータ項目を使用できます。

mimetypes.init(files=None)

内部データ構造を初期化します。 指定する場合、 files は、デフォルトのタイプマップを拡張するために使用する必要がある一連のファイル名である必要があります。 省略した場合、使用するファイル名は knownfiles から取得されます。 Windowsでは、現在のレジストリ設定が読み込まれます。 files または knownfiles で名前が付けられた各ファイルは、それ以前に名前が付けられたファイルよりも優先されます。 init()を繰り返し呼び出すことができます。

ファイルに空のリストを指定すると、システムのデフォルトが適用されなくなります。組み込みリストには、既知の値のみが表示されます。

filesNoneの場合、内部データ構造は完全に初期のデフォルト値に再構築されます。 これは安定した操作であり、複数回呼び出されても同じ結果が得られます。

バージョン3.2で変更:以前は、Windowsレジストリ設定は無視されていました。

mimetypes.read_mime_types(filename)
ファイルファイル名に指定されているタイプマップが存在する場合は、それをロードします。 タイプマップは、先頭のドット('.')を含むファイル名拡張子を'type/subtype'の形式の文字列にマッピングする辞書として返されます。 ファイルファイル名が存在しないか、読み取れない場合は、Noneが返されます。
mimetypes.add_type(type, ext, strict=True)

MIMEタイプタイプから拡張子 ext へのマッピングを追加します。 拡張子がすでにわかっている場合は、新しいタイプが古いタイプに置き換わります。 タイプがすでにわかっている場合、拡張機能は既知の拡張機能のリストに追加されます。

strictTrue(デフォルト)の場合、マッピングは公式のMIMEタイプに追加され、それ以外の場合は非標準のMIMEタイプに追加されます。

mimetypes.inited
グローバルデータ構造が初期化されているかどうかを示すフラグ。 これは、 init()によってTrueに設定されます。
mimetypes.knownfiles
一般的にインストールされるタイプマップファイル名のリスト。 これらのファイルは通常mime.typesという名前で、さまざまなパッケージによってさまざまな場所にインストールされます。
mimetypes.suffix_map
接尾辞を接尾辞にマッピングする辞書。 これは、エンコードとタイプが同じ拡張子で示されているエンコードされたファイルを認識できるようにするために使用されます。 たとえば、.tgz拡張子は.tar.gzにマップされ、エンコーディングとタイプを別々に認識できるようになります。
mimetypes.encodings_map
ファイル名拡張子をエンコーディングタイプにマッピングする辞書。
mimetypes.types_map
ファイル名拡張子をMIMEタイプにマッピングする辞書。
mimetypes.common_types
ファイル名拡張子を非標準であるが一般的に見られるMIMEタイプにマッピングする辞書。

モジュールの使用例:

>>> import mimetypes
>>> mimetypes.init()
>>> mimetypes.knownfiles
['/etc/mime.types', '/etc/httpd/mime.types', ... ]
>>> mimetypes.suffix_map['.tgz']
'.tar.gz'
>>> mimetypes.encodings_map['.gz']
'gzip'
>>> mimetypes.types_map['.tgz']
'application/x-tar-gz'

MimeTypesオブジェクト

MimeTypes クラスは、複数のMIMEタイプデータベースが必要なアプリケーションに役立つ場合があります。 mimetypes モジュールの1つと同様のインターフェースを提供します。

class mimetypes.MimeTypes(filenames=(), strict=True)

このクラスは、MIMEタイプのデータベースを表します。 デフォルトでは、このモジュールの残りの部分と同じデータベースへのアクセスを提供します。 初期データベースは、モジュールによって提供されるデータベースのコピーであり、 read()または readfp()を使用して追加のmime.typesスタイルのファイルをデータベースにロードすることで拡張できます。 メソッド。 デフォルトのデータが必要ない場合は、追加のデータをロードする前にマッピング辞書をクリアすることもできます。

オプションの filenames パラメーターを使用すると、デフォルトのデータベースの「上」に追加のファイルをロードできます。

suffix_map

接尾辞を接尾辞にマッピングする辞書。 これは、エンコードとタイプが同じ拡張子で示されているエンコードされたファイルを認識できるようにするために使用されます。 たとえば、.tgz拡張子は.tar.gzにマップされ、エンコーディングとタイプを別々に認識できるようになります。 これは最初、モジュールで定義されたグローバルサフィックスマップのコピーです。

encodings_map

ファイル名拡張子をエンコーディングタイプにマッピングする辞書。 これは最初、モジュールで定義されたグローバル encodings_map のコピーです。

types_map

ファイル名拡張子をMIMEタイプにマッピングする、2つのディクショナリを含むタプル。最初のディクショナリは非標準タイプ用で、2番目のディクショナリは標準タイプ用です。 それらは common_typestypes_map によって初期化されます。

types_map_inv

2つのディクショナリを含むタプル。MIMEタイプをファイル名拡張子のリストにマッピングします。最初のディクショナリは非標準タイプ用で、2番目のディクショナリは標準タイプ用です。 それらは common_typestypes_map によって初期化されます。

guess_extension(type, strict=True)

guess_extension()関数と同様に、オブジェクトの一部として格納されているテーブルを使用します。

guess_type(url, strict=True)

guess_type()関数と同様に、オブジェクトの一部として格納されているテーブルを使用します。

guess_all_extensions(type, strict=True)

guess_all_extensions()関数と同様に、オブジェクトの一部として格納されているテーブルを使用します。

read(filename, strict=True)

filename という名前のファイルからMIME情報をロードします。 これは、 readfp()を使用してファイルを解析します。

strictTrueの場合、情報は標準タイプのリストに追加され、そうでない場合は非標準タイプのリストに追加されます。

readfp(fp, strict=True)

開いているファイル fp からMIMEタイプ情報をロードします。 ファイルは、標準のmime.typesファイルの形式である必要があります。

strictTrueの場合、情報は標準タイプのリストに追加され、そうでない場合は非標準タイプのリストに追加されます。

read_windows_registry(strict=True)

WindowsレジストリからMIMEタイプ情報をロードします。

strictTrueの場合、情報は標準タイプのリストに追加され、そうでない場合は非標準タイプのリストに追加されます。

バージョン3.2の新機能。