File
Объект ¶
django.core.files
Модуль и его подмодули содержат встроенные классы для основной обработки файлов в Django.
File
Класс ¶
-
class
File
( file_object , name = None ) [источник] ¶ File
Класс представляет собой тонкую оболочку вокруг Python объекта файла с некоторыми Джанго специфическими дополнениями. Внутри Django использует этот класс, когда ему нужно представить файл.File
объекты имеют следующие атрибуты и методы:-
name
¶ Имя файла, включая относительный путь от
MEDIA_ROOT
.
-
size
¶ Размер файла в байтах.
-
file
¶ Базовый файловый объект, который обертывает этот класс.
Будьте осторожны с этим атрибутом в подклассах.
Некоторые подклассы
File
, включаяContentFile
иFieldFile
, могут заменять этот атрибут объектом, отличным от файлового объекта Python . В этих случаях этот атрибут может сам бытьFile
подклассом (и не обязательно тем же подклассом). По возможности используйте атрибуты и методы самого подкласса, а неfile
атрибуты подкласса .
-
mode
¶ Режим чтения / записи для файла.
-
open
( mode = None ) [источник] ¶ Откройте или повторно откройте файл (что тоже происходит
File.seek(0)
).mode
Аргумент позволяет одни и те же значения, что и Python встроенныйopen()
.При повторном открытии файла
mode
переопределит любой режим, в котором файл был изначально открыт;None
означает повторное открытие в исходном режиме.Его можно использовать как диспетчер контекста, например .
with file.open() as f:
-
__iter__
() [источник] ¶ Перебирайте файл, выводя по одной строке за раз.
-
chunks
( chunk_size = None ) [источник] ¶ Перебирайте файл, получая «куски» заданного размера.
chunk_size
по умолчанию 64 КБ.Это особенно полезно для очень больших файлов, поскольку позволяет передавать их с диска в потоковом режиме и позволяет избежать сохранения всего файла в памяти.
-
multiple_chunks
( chunk_size = None ) [источник] ¶ Возвращает,
True
если файл достаточно велик, чтобы потребовать несколько фрагментов для доступа ко всему его содержимомуchunk_size
.
-
close
() [источник] ¶ Закройте файл.
В дополнение к перечисленным методам,
File
предоставляет следующие атрибуты и методы егоfile
объекта:encoding
,fileno
,flush
,isatty
,newlines
,read
,readinto
,readline
,readlines
,seek
,tell
,truncate
,write
,writelines
,readable()
,writable()
, иseekable()
.-
ContentFile
Класс ¶
-
class
ContentFile
( content , name = None ) [источник] ¶ В
ContentFile
наследуется класс отFile
, но в отличие отFile
него действует на содержимое строки (байты также поддерживается), а не фактический файл. Например:from django.core.files.base import ContentFile f1 = ContentFile("esta frase está en español") f2 = ContentFile(b"these are bytes")
ImageFile
Класс ¶
-
class
ImageFile
( file_object , name = None ) [источник] ¶ Django предоставляет встроенный класс специально для изображений.
django.core.files.images.ImageFile
наследует все атрибуты и методыFile
и дополнительно предоставляет следующее:-
width
¶ Ширина изображения в пикселях.
-
height
¶ Высота изображения в пикселях.
-
Дополнительные методы для файлов, прикрепленных к объектам ¶
Все, File
что связано с объектом (как, например Car.photo
, ниже), также будет иметь несколько дополнительных методов:
-
File.
save
( Имя , содержание , сохранить = True ) ¶ Сохраняет новый файл с указанным именем и содержимым. Это не заменит существующий файл, но создаст новый файл и обновит объект, чтобы он указывал на него. Если
save
естьTrue
, в моделиsave()
метод будет вызываться после того , как файл будет сохранен. То есть эти две строчки:>>> car.photo.save('myphoto.jpg', content, save=False) >>> car.save()
эквивалентны:
>>> car.photo.save('myphoto.jpg', content, save=True)
Обратите внимание, что
content
аргумент должен быть экземпляром одногоFile
или подклассаFile
, напримерContentFile
.
-
File.
delete
( сохранить = True ) ¶ Удаляет файл из экземпляра модели и удаляет базовый файл. Если
save
естьTrue
, метод моделиsave()
будет вызываться после удаления файла.