---
title: "File オブジェクト"
version: 3.1
locale: ja
source: https://docs.djangoproject.com/ja/3.1/ref/files/file/
canonical: https://djangodocs.dev/ja/3.1/ref/files/file/
---
# `File` オブジェクト

[`django.core.files`](/ja/3.1/ref/files/#module-django.core.files) モジュールとそのサブモジュールでは、Django の基本的なファイルハンドリングに関するビルトインクラスが定義されています。

## `File` クラス

#### `class File(file_object)`

[`File`](#django.core.files.File) クラスは、Python の [file object](https://docs.python.org/3/glossary.html#term-file-object) に Django 特有の追加機能を付け加えた薄いラッパーです。内部的でファイルを表現する必要がある場合には、Django はこのクラスを使います。

[`File`](#django.core.files.File) オブジェクトには次の属性とメソッドを持ちます。

#### `name`

[`MEDIA_ROOT`](/ja/3.1/ref/settings/#std-setting-MEDIA_ROOT) からの相対パスを含むファイル名です。

#### `size`

bytes で表されたファイルサイズ。

#### `file`

このクラスがラッピングしている、素の [file object](https://docs.python.org/3/glossary.html#term-file-object) クラスです。

> **この属性をサブクラスで扱う場合には注意が必要です。**
>
> [`ContentFile`](#django.core.files.base.ContentFile) や [`FieldFile`](/ja/3.1/ref/models/fields/#django.db.models.fields.files.FieldFile) など [`File`](#django.core.files.File) のサブクラスは、この属性を Python の [file object](https://docs.python.org/3/glossary.html#term-file-object) 以外のオブジェクトに置き換えることがあります。このような場合には、この属性自体は [`File`](#django.core.files.File)  のサブクラスであるかもしれません (が、同じサブクラスとは限りません)。そのため、可能な限り、サブクラスの `file` 属性ではなく、サブクラス自身が持つ属性やメソッドを使用するようにしてください。

#### `mode`

ファイルの読み込み/書き込みのモードです。

#### `open(mode=None)`

Open or reopen the file (which also does `File.seek(0)`).
The `mode` argument allows the same values
as Python's built-in [`open()`](https://docs.python.org/3/library/functions.html#open).

When reopening a file, `mode` will override whatever mode the file
was originally opened with; `None` means to reopen with the original
mode.

It can be used as a context manager, e.g. `with file.open() as f:`.

#### `__iter__()`

Iterate over the file yielding one line at a time.

#### `chunks(chunk_size=None)`

Iterate over the file yielding "chunks" of a given size. `chunk_size`
defaults to 64 KB.

This is especially useful with very large files since it allows them to
be streamed off disk and avoids storing the whole file in memory.

#### `multiple_chunks(chunk_size=None)`

Returns `True` if the file is large enough to require multiple chunks
to access all of its content give some `chunk_size`.

#### `close()`

Close the file.

In addition to the listed methods, [`File`](#django.core.files.File) exposes
the following attributes and methods of its `file` object:
`encoding`, `fileno`, `flush`, `isatty`, `newlines`, `read`,
`readinto`, `readline`, `readlines`, `seek`, `tell`,
`truncate`, `write`, `writelines`, `readable()`, `writable()`,
and `seekable()`.

## The `ContentFile` class

#### `class ContentFile(File)`

The `ContentFile` class inherits from [`File`](#django.core.files.File),
but unlike [`File`](#django.core.files.File) it operates on string content
(bytes also supported), rather than an actual file. For example:

```
from django.core.files.base import ContentFile

f1 = ContentFile("esta frase está en español")
f2 = ContentFile(b"these are bytes")
```

## The `ImageFile` class

#### `class ImageFile(file_object)`

Django provides a built-in class specifically for images.
[`django.core.files.images.ImageFile`](#django.core.files.images.ImageFile) inherits all the attributes
and methods of [`File`](#django.core.files.File), and additionally
provides the following:

#### `width`

Width of the image in pixels.

#### `height`

Height of the image in pixels.

## Additional methods on files attached to objects

Any [`File`](#django.core.files.File) that is associated with an object (as with `Car.photo`,
below) will also have a couple of extra methods:

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

Saves a new file with the file name and contents provided. This will not
replace the existing file, but will create a new file and update the object
to point to it. If `save` is `True`, the model's `save()` method will
be called once the file is saved. That is, these two lines:

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

are equivalent to:

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

Note that the `content` argument must be an instance of either
[`File`](#django.core.files.File) or of a subclass of [`File`](#django.core.files.File), such as
[`ContentFile`](#django.core.files.base.ContentFile).

#### `File.delete(save=True)`

Removes the file from the model instance and deletes the underlying file.
If `save` is `True`, the model's `save()` method will be called once
the file is deleted.
