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
pathcom 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 argumentomodesegue os mesmos valores doopen()padrão do Python.Ao reabrir um arquivo, o
modeirá sobrescrever o modo com quem o arquivo foi originalmente aberto;Nonesignifica 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
Truese o arquivo é grande o suficiente para exigir múltiplos pedaços ou se todo o seu conteúdo pode ser acessado nochunk_sizefornecido.
-
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
contentdeve ser uma instância da classeFileou uma subclasse deFile.
-
File.delete(save=True)¶ Remove o arquivo da instância do modelo e deleta o arquivo em si. O argumento
savefunciona como acima.