O objeto File
¶
-
class
File
(file_object)¶
atributos e métodos de File
¶
O File
do Django tem os seguintes atributos e métodos:
-
File.
name
¶ O nome do arquivo incluindo o caminho relativo de
MEDIA_ROOT
.
-
File.
path
¶ O caminho absoluto do arquivo no sistema de arquivos
Sistemas de armazenamento de arquivos personalizados podem não gravar arquivos localmente; arquivos gravados nesses sistemas terão o
path
com valorNone
.
-
File.
url
¶ A URL onde o arquivo pode ser obtido. Isso é frequentemente útil em templates; por exemplo, um snippet de um template para exibir um
Car
(veja abaixo) poderia ser assim:<img src='{{ car.photo.url }}' alt='{{ car.name }}' />
-
File.
size
¶ O tamanho do arquivo em bytes.
-
File.
open
(mode=None)¶ Abre ou reabre o arquivo (que por definição também faz um
File.seek(0)
). O argumentomode
segue os mesmos valores doopen()
padrão do Python.Ao reabrir um arquivo, o
mode
irá sobrescrever o modo com quem o arquivo foi originalmente aberto;None
significa reabrir no modo original.
-
File.
read
(num_bytes=None)¶ Lê o conteúdo do arquivo. O argumento opcional
size
é o número de bytes a serem lidos; se não for especificado, o arquivo será lido por completo.
-
File.
__iter__
()¶ Itera sobre o arquivo retornando uma linha por vez.
-
File.
chunks
(chunk_size=None)¶ Itera sobre o arquivo retornando “pedaços” de um dado tamanho. O padrão para
chunk_size
é 64 KB.Isto é especialmente útil com arquivos muito grandes, desde que os permitem serem enviados por stream para o disco, evitando o armazenamento de todo o arquivo na memória.
-
File.
multiple_chunks
(chunk_size=None)¶ Retorna
True
se o arquivo é grande o suficiente para exigir múltiplos pedaços ou se todo o seu conteúdo pode ser acessado nochunk_size
fornecido.
-
File.
write
(content)¶ Escreve a string especificada no conteúdo do arquivo. Dependendo do sistema de armazenamento nos bastidores, esse conteúdo pode não estar completamente escrito até
close()
ser chamado no arquivo.
-
File.
close
()¶ Fecha o arquivo.
Métodos adicionais de arquivos anexados a objetos¶
Qualquer File
que esteja associado com um objeto (como o Car.photo
,
no exemplo acima) irá ter algums métodos extras:
-
File.
save
(name, content, save=True)¶ Salva um novo arquivo com o nome de arquivo e conteúdo fornecidos. Não irá substituir o arquivo original, mas criar um novo arquivo e atualizar o objeto para apontar pra ele. Se
save
éTrue
, o métodosave()
do modelo irá ser chamado assim que o arquivo é salvo. Assim, essas duas linhas:>>> car.photo.save('myphoto.jpg', contents, save=False) >>> car.save()
são o mesmo que essa única linha:
>>> car.photo.save('myphoto.jpg', contents, save=True)
Note que o argumento
content
deve ser uma instância da classeFile
ou uma subclasse deFile
.
-
File.
delete
(save=True)¶ Remove o arquivo da instância do modelo e deleta o arquivo em si. O argumento
save
funciona como acima.