{"title":"L’objet File","version":"1.10","locale":"fr","docname":"ref/files/file","url":"/fr/1.10/ref/files/file/","canonical":"https://djangodocs.dev/fr/1.10/ref/files/file/","summary":"Le module django.core.files et ses sous-modules contiennent les classes intégrées pour la gestion de base des fichiers dans Django.","html":"<h1>L’objet <code class=\"docutils literal notranslate\">File</code><a class=\"heading-anchor\" href=\"#the-file-object\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Le module <a class=\"reference internal\" href=\"/fr/1.10/ref/files/#module-django.core.files\" title=\"django.core.files: File handling and storage\"><code class=\"xref py py-mod docutils literal notranslate\">django.core.files</code></a> et ses sous-modules contiennent les classes intégrées pour la gestion de base des fichiers dans Django.</p>\n<section id=\"the-file-class\">\n<h2>La classe <code class=\"docutils literal notranslate\">File</code><a class=\"heading-anchor\" href=\"#the-file-class\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">File</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">file_object</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.File\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La classe <a class=\"reference internal\" href=\"#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">File</code></a> est une enveloppe légère autour d’un <span class=\"xref std std-term\">objet fichier</span> de Python, doté de quelques ajouts spécifiques à Django. En interne, Django utilise cette classe lorsqu’il a besoin de représenter un fichier.</p>\n<p>Les objets <a class=\"reference internal\" href=\"#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">File</code></a> possèdent les attributs et méthodes suivants :</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.name\">\n<span class=\"sig-name descname\">name</span><a class=\"heading-anchor\" href=\"#django.core.files.File.name\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le nom du fichier, comprenant le chemin relatif du réglage <a class=\"reference internal\" href=\"/fr/1.10/ref/settings/#std-setting-MEDIA_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\">MEDIA_ROOT</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.size\">\n<span class=\"sig-name descname\">size</span><a class=\"heading-anchor\" href=\"#django.core.files.File.size\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La taille du fichier en octets.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.file\">\n<span class=\"sig-name descname\">file</span><a class=\"heading-anchor\" href=\"#django.core.files.File.file\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>L”<span class=\"xref std std-term\">objet fichier</span> que cette classe enveloppe.</p>\n<aside class=\"admonition-be-careful-with-this-attribute-in-subclasses admonition\" role=\"note\">\n<p class=\"admonition-title\">Soyez prudent avec cet attribut dans les sous-classes.</p>\n<p>Certaines sous-classes de <a class=\"reference internal\" href=\"#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">File</code></a>, incluant <a class=\"reference internal\" href=\"#django.core.files.base.ContentFile\" title=\"django.core.files.base.ContentFile\"><code class=\"xref py py-class docutils literal notranslate\">ContentFile</code></a> et <a class=\"reference internal\" href=\"/fr/1.10/ref/models/fields/#django.db.models.fields.files.FieldFile\" title=\"django.db.models.fields.files.FieldFile\"><code class=\"xref py py-class docutils literal notranslate\">FieldFile</code></a>, peuvent remplacer cet attribut par un objet autre qu’un <span class=\"xref std std-term\">objet fichier</span> Python. Dans ces cas, cet attribut peut être lui-même une sous-classe de <a class=\"reference internal\" href=\"#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">File</code></a> (et par nécessairement la même sous-classe). Autant que possible, utilisez les attributs et méthodes de la sous-classe elle-même plutôt que ceux de l’attribut <code class=\"docutils literal notranslate\">file</code> des sous-classes.</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.mode\">\n<span class=\"sig-name descname\">mode</span><a class=\"heading-anchor\" href=\"#django.core.files.File.mode\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Le mode lecture/écriture du fichier.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.open\">\n<span class=\"sig-name descname\">open</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">mode<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.File.open\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ouvre ou réouvre le fichier (et réinitialise son pointeur par <code class=\"docutils literal notranslate\">File.seek(0)</code>). Le paramètre <code class=\"docutils literal notranslate\">mode</code> autorise les mêmes valeurs que la fonction intégrée de Python <a class=\"reference external\" href=\"https://docs.python.org/3/library/functions.html#open\" title=\"(disponible dans Python v3.14)\"><code class=\"docutils literal notranslate\">open()</code></a>.</p>\n<p>Lors de la réouverture d’un fichier, <code class=\"docutils literal notranslate\">mode</code> écrase le mode avec lequel le fichier a été initialement ouvert ; <code class=\"docutils literal notranslate\">None</code> signifie que le mode initial doit être utilisé pour la réouverture.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.read\">\n<span class=\"sig-name descname\">read</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">num_bytes<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.File.read\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Lit du contenu dans le fichier. Le paramètre facultatif <code class=\"docutils literal notranslate\">size</code> correspond au nombre d’octets à lire ; lorsqu’il n’est pas indiqué, le fichier est lu entièrement.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.__iter__\">\n<span class=\"sig-name descname\">__iter__</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.File.__iter__\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Lit le fichier par itération en renvoyant les lignes une à une.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.chunks\">\n<span class=\"sig-name descname\">chunks</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">chunk_size<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.File.chunks\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Lit le fichier par itération en renvoyant des blocs (« chunks »)de la taille indiquée. La valeur par défaut de <code class=\"docutils literal notranslate\">chunk_size</code> est 64 Ko.</p>\n<p>C’est particulièrement utile pour les gros fichiers car cela permet de les lire en flux à partir du disque en évitant de stocker la totalité du fichier en mémoire.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.multiple_chunks\">\n<span class=\"sig-name descname\">multiple_chunks</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">chunk_size<span class=\"o\">=</span><span class=\"default_value\">None</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.File.multiple_chunks\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Renvoie <code class=\"docutils literal notranslate\">True</code> si la taille du fichier nécessite de le partitionner en plusieurs blocs pour le lire en entier, en fonction de la taille <code class=\"docutils literal notranslate\">chunk_size</code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.write\">\n<span class=\"sig-name descname\">write</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">content</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.File.write\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Écrit le contenu textuel indiqué dans le fichier. En fonction du système de stockage utilisé, il est possible que le contenu ne soit pas réellement écrit avant que le fichier soit fermé avec <a class=\"reference internal\" href=\"#django.core.files.File.close\" title=\"django.core.files.File.close\"><code class=\"xref py py-func docutils literal notranslate\">close()</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.close\">\n<span class=\"sig-name descname\">close</span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.File.close\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Ferme le fichier.</p>\n</dd></dl>\n\n<p>En plus des méthodes mentionnées, <a class=\"reference internal\" href=\"#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">File</code></a> expose les attributs et méthodes suivants de son objet <code class=\"docutils literal notranslate\">file</code>: <code class=\"docutils literal notranslate\">encoding</code>, <code class=\"docutils literal notranslate\">fileno</code>, <code class=\"docutils literal notranslate\">flush</code>, <code class=\"docutils literal notranslate\">isatty</code>, <code class=\"docutils literal notranslate\">newlines</code>, <code class=\"docutils literal notranslate\">read</code>, <code class=\"docutils literal notranslate\">readinto</code>, <code class=\"docutils literal notranslate\">readlines</code>, <code class=\"docutils literal notranslate\">seek</code>, <code class=\"docutils literal notranslate\">softspace</code>, <code class=\"docutils literal notranslate\">tell</code>, <code class=\"docutils literal notranslate\">truncate</code>, <code class=\"docutils literal notranslate\">writelines</code>, <code class=\"docutils literal notranslate\">xreadlines</code>. Si vous utilisez Python 3, la méthode <code class=\"docutils literal notranslate\">seekable</code> est aussi disponible.</p>\n<aside class=\"version-note version-changed\" data-version=\"1.9\" role=\"note\">\n<p class=\"version-note-title\">Changed in Django 1.9</p><p>La méthode <code class=\"docutils literal notranslate\">seekable</code> a été ajoutée.</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"the-contentfile-class\">\n<h2>La classe <code class=\"docutils literal notranslate\">ContentFile</code><a class=\"heading-anchor\" href=\"#the-contentfile-class\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.base.ContentFile\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ContentFile</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">File</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.base.ContentFile\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>La classe <code class=\"docutils literal notranslate\">ContentFile</code> hérite de <a class=\"reference internal\" href=\"#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">File</code></a>, mais contrairement à celle-ci, elle n’agit que sur du contenu de type chaîne (octets aussi admis), plutôt que sur un vrai fichier. Par exemple :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span> <span class=\"nn\">__future__</span> <span class=\"kn\">import</span> unicode_literals\n<span class=\"kn\">from</span> <span class=\"nn\">django.core.files.base</span> <span class=\"kn\">import</span> ContentFile\n\nf1 <span class=\"o\">=</span> ContentFile<span class=\"p\">(</span><span class=\"s2\">&quot;esta sentencia está en español&quot;</span><span class=\"p\">)</span>\nf2 <span class=\"o\">=</span> ContentFile<span class=\"p\">(</span><span class=\"sa\">b</span><span class=\"s2\">&quot;these are bytes&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"the-imagefile-class\">\n<h2>La classe <code class=\"docutils literal notranslate\">ImageFile</code><a class=\"heading-anchor\" href=\"#the-imagefile-class\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.images.ImageFile\">\n<em class=\"property\"><span class=\"k\">class</span> </em><span class=\"sig-name descname\">ImageFile</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">file_object</em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.images.ImageFile\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Django fournit une classe intégrée tout exprès pour les images. <a class=\"reference internal\" href=\"#django.core.files.images.ImageFile\" title=\"django.core.files.images.ImageFile\"><code class=\"xref py py-class docutils literal notranslate\">django.core.files.images.ImageFile</code></a> hérite de tous les attributs et méthodes de <a class=\"reference internal\" href=\"#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">File</code></a>, et offre en plus les éléments suivants :</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.images.ImageFile.width\">\n<span class=\"sig-name descname\">width</span><a class=\"heading-anchor\" href=\"#django.core.files.images.ImageFile.width\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Largeur de l’image en pixels.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.images.ImageFile.height\">\n<span class=\"sig-name descname\">height</span><a class=\"heading-anchor\" href=\"#django.core.files.images.ImageFile.height\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Hauteur de l’image en pixels.</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"additional-methods-on-files-attached-to-objects\">\n<h2>Méthodes supplémentaires pour les fichiers liés à des objets<a class=\"heading-anchor\" href=\"#additional-methods-on-files-attached-to-objects\"><span class=\"visually-hidden\">Lien vers cette rubrique</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Tout fichier <a class=\"reference internal\" href=\"#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">File</code></a> associé à un objet (comme pour <code class=\"docutils literal notranslate\">Car.photo</code> ci-dessous) possède également quelque méthodes supplémentaires :</p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.save\">\n<span class=\"sig-prename descclassname\">File.</span><span class=\"sig-name descname\">save</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">name</em>, <em class=\"sig-param\">content</em>, <em class=\"sig-param\">save<span class=\"o\">=</span><span class=\"default_value\">True</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.File.save\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Enregistre un nouveau fichier avec le nom de fichier et le contenu indiqués. Cela ne remplacera pas le fichier existant, mais un nouveau fichier sera créé et l’objet sera mis à jour pour pointer vers ce fichier. Si <code class=\"docutils literal notranslate\">save</code> vaut <code class=\"docutils literal notranslate\">True</code>, la méthode <code class=\"docutils literal notranslate\">save()</code> du modèle sera appelée après l’enregistrement du fichier. C’est-à-dire que ces deux lignes :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>car<span class=\"o\">.</span>photo<span class=\"o\">.</span>save<span class=\"p\">(</span><span class=\"s1\">&#39;myphoto.jpg&#39;</span><span class=\"p\">,</span> content<span class=\"p\">,</span> save<span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"gp\">&gt;&gt;&gt; </span>car<span class=\"o\">.</span>save<span class=\"p\">()</span>\n</code></pre></div>\n<p>sont équivalentes à :</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"gp\">&gt;&gt;&gt; </span>car<span class=\"o\">.</span>photo<span class=\"o\">.</span>save<span class=\"p\">(</span><span class=\"s1\">&#39;myphoto.jpg&#39;</span><span class=\"p\">,</span> content<span class=\"p\">,</span> save<span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>Notez que le paramètre <code class=\"docutils literal notranslate\">content</code> doit être soit une instance de <a class=\"reference internal\" href=\"#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">File</code></a> , soit une sous-classe de <a class=\"reference internal\" href=\"#django.core.files.File\" title=\"django.core.files.File\"><code class=\"xref py py-class docutils literal notranslate\">File</code></a>, comme par exemple <a class=\"reference internal\" href=\"#django.core.files.base.ContentFile\" title=\"django.core.files.base.ContentFile\"><code class=\"xref py py-class docutils literal notranslate\">ContentFile</code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.core.files.File.delete\">\n<span class=\"sig-prename descclassname\">File.</span><span class=\"sig-name descname\">delete</span><span class=\"sig-paren\">(</span><em class=\"sig-param\">save<span class=\"o\">=</span><span class=\"default_value\">True</span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.core.files.File.delete\"><span class=\"visually-hidden\">Lien vers cette définition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Enlève le fichier de l’instance de modèle et supprime le fichier concerné. Si <code class=\"docutils literal notranslate\">save</code> vaut <code class=\"docutils literal notranslate\">True</code>, la méthode <code class=\"docutils literal notranslate\">save()</code> du modèle sera appelée après la suppression du fichier.</p>\n</dd></dl>\n\n</section>","rootId":"the-file-object","toc":[{"title":"La classe File","anchor":"the-file-class","children":[]},{"title":"La classe ContentFile","anchor":"the-contentfile-class","children":[]},{"title":"La classe ImageFile","anchor":"the-imagefile-class","children":[]},{"title":"Méthodes supplémentaires pour les fichiers liés à des objets","anchor":"additional-methods-on-files-attached-to-objects","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"Référence de l’API","url":"/fr/1.10/ref/"},{"docname":"ref/files/index","title":"Gestion des fichiers","url":"/fr/1.10/ref/files/"}],"prev":{"docname":"ref/files/index","title":"Gestion des fichiers","url":"/fr/1.10/ref/files/"},"next":{"docname":"ref/files/storage","title":"API de stockage des fichiers","url":"/fr/1.10/ref/files/storage/"},"formats":{"html":"/fr/1.10/ref/files/file/","markdown":"/fr/1.10/ref/files/file.md","json":"/fr/1.10/ref/files/file.json"},"source":"https://github.com/django/django/blob/stable/1.10.x/docs/ref/files/file.txt","official":"https://docs.djangoproject.com/fr/1.10/ref/files/file/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0","1.11","1.10","1.9"],"inLocales":["en","fr","ja","id","pt-br","es","el","pl"]}