このドキュメントの Django のバージョンにはセキュリティ上の脆弱性があるため、すでにサポートが終了されています。新しいバージョンにアップグレードしてください!最新の Django のバージョンのドキュメントはこちら

Django v1.0 documentation

File オブジェクト

revision-up-to:8961 (1.0)
class File(file_object)

属性とメソッド

Django の File 型は、以下の属性とメソッドを備えています:

File.name
MEDIA_ROOT からの相対パスを含む、ファイルの名前です。
File.path

ローカルのファイルシステムにおけるファイルの絶対パスです。

カスタムのファイルストレージシステム の場合、必ずしもローカルにファイルを保存しません。ローカルにファイルを 保存しないシステムでは、 pathNone です。

File.url

ファイルを取得できる URL です。 templates で 使う場合に便利です。例えば、ファイル ファイルの管理Car の例で、車の写真を表示するテンプレートは以下のように書けます:

<img src='{{ car.photo.url }}' alt='{{ car.name }}' />
File.size
バイト単位のファイルサイズです。
File.open(mode=None)

ファイルをオープンまたは再オープン (かつ File.seek(0)) します。 mode 引数には、 Python の標準の関数 open() と同じ引数を指定でき ます。

ファイルを再オープンした場合、 mode は最初にオープンしたときのファ イルモードをオーバライドします。 None を指定すると、最初のモードと 同じモードを使います。

File.read(num_bytes=None)
ファイルからコンテンツを読み出します。オプションの num_bytes は読み出すデータの長さです。指定しなければ、末尾まで読み出します。
File.__iter__()
ファイルを一度に一行づつ繰り返して読み出します。
File.chunks(chunk_size=None)

ファイルを chunk_size に指定したサイズのチャンク ("chunk") づつ繰り 返して読み出します。 chunk_size のデフォルトサイズは 64KB です。

このメソッドは、ファイル全体をメモリに保存しなくても、ディスクからスト リーム読み出しできるので、巨大なファイルを読むときに便利です。

File.multiple_chunks(chunk_size=None)
ファイルが大きくて、長さ chunk_size のチャンクに分けて複数回アクセ スできる場合に True を返します。
File.write(content)
content に指定した文字列をファイルに書き込みます。背後にあるストレー ジシステムによっては、 close() を呼ぶまで content がコミットさ れない場合があります。
File.close()
ファイルを閉じます。

ImageField 固有の属性

File.width
画像の幅です。
File.height
画像の高さです。

オブジェクトに結び付いているファイル特有のメソッド

(Car.photo のように) オブジェクトに結び付いてる File には、 以下の二つのメソッドがあります:

File.save(name, content, save=True)

ファイル名 name とコンテンツ content を使って新たなファイルを生 成し、保存します。このメソッドは既存のファイルを置き換えるのではなく、 新たなファイルを作成して、オブジェクトがそのファイルを指すようにします。 saveTrue にすると、ファイルが保存されたときに save() メ ソッドを呼び出します。すなわち、以下の 2 行:

>>> car.photo.save('myphoto.jpg', contents, save=False)
>>> car.save()

は、以下の 1 行と同じです:

>>> car.photo.save('myphoto.jpg', contents, save=True)

content 引数は File またはそのサブクラスのインスタンスでな ければなりません。

File.delete(save=True)
ファイルをモデルインスタンスから除去して、背後にあるファイルも削除しま す。 save 引数は上のメソッドと同じです。