<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Modules, fichiers et JSON on kodkod | Cours d'introduction</title><link>https://intro-kodkod-6.nm-ambition.com/fr/docs/python-modules-files/</link><description>Recent content in Modules, fichiers et JSON on kodkod | Cours d'introduction</description><generator>Hugo</generator><language>fr</language><copyright>מבואות קודקוד</copyright><atom:link href="https://intro-kodkod-6.nm-ambition.com/fr/docs/python-modules-files/index.xml" rel="self" type="application/rss+xml"/><item><title>Les modules : pourquoi découper en fichiers, import, from et as</title><link>https://intro-kodkod-6.nm-ambition.com/fr/docs/python-modules-files/01-modules-and-import/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/fr/docs/python-modules-files/01-modules-and-import/</guid><description>&lt;h2 id="quallons-nous-apprendre-"&gt;Qu&amp;rsquo;allons-nous apprendre ?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ce qu&amp;rsquo;est un &lt;strong&gt;module&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Pourquoi on découpe un projet en &lt;strong&gt;plusieurs fichiers&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Trois formes d&amp;rsquo;import : &lt;code&gt;import&lt;/code&gt;, &lt;code&gt;from ... import&lt;/code&gt;, &lt;code&gt;as&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Ce qui se passe &lt;strong&gt;exactement&lt;/strong&gt; quand Python importe un fichier.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pourquoi-en-avons-nous-besoin-"&gt;Pourquoi en avons-nous besoin ?&lt;/h2&gt;
&lt;p&gt;Nous avons déjà utilisé des modules : &lt;code&gt;import os&lt;/code&gt;, &lt;code&gt;import logging&lt;/code&gt;, &lt;code&gt;import socket&lt;/code&gt;. Aujourd&amp;rsquo;hui, nous allons écrire &lt;strong&gt;les nôtres&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Les packages, __init__.py et if __name__ == "__main__"</title><link>https://intro-kodkod-6.nm-ambition.com/fr/docs/python-modules-files/02-packages-and-main-guard/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/fr/docs/python-modules-files/02-packages-and-main-guard/</guid><description>&lt;h2 id="quallons-nous-apprendre-"&gt;Qu&amp;rsquo;allons-nous apprendre ?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Le package&lt;/strong&gt; — un dossier qui contient des modules.&lt;/li&gt;
&lt;li&gt;Le fichier &lt;strong&gt;&lt;code&gt;__init__.py&lt;/code&gt;&lt;/strong&gt; et son rôle.&lt;/li&gt;
&lt;li&gt;Importer depuis un package.&lt;/li&gt;
&lt;li&gt;La variable spéciale &lt;strong&gt;&lt;code&gt;__name__&lt;/code&gt;&lt;/strong&gt;, et le modèle &lt;strong&gt;&lt;code&gt;if __name__ == &amp;quot;__main__&amp;quot;:&lt;/code&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pourquoi-en-avons-nous-besoin-"&gt;Pourquoi en avons-nous besoin ?&lt;/h2&gt;
&lt;p&gt;Quand il y a 3 modules, ils peuvent être dans le même dossier. Quand il y en a 30, il faut des &lt;strong&gt;dossiers&lt;/strong&gt; : tout ce qui concerne les utilisateurs dans un dossier, tout ce qui concerne les paiements dans un autre. C&amp;rsquo;est ainsi que sont construits tous les vrais projets, et aussi toutes les bibliothèques que vous installerez (FastAPI est un énorme package avec des dizaines de sous-packages).&lt;/p&gt;</description></item><item><title>Travailler avec des fichiers texte : open, with, lecture et écriture</title><link>https://intro-kodkod-6.nm-ambition.com/fr/docs/python-modules-files/03-text-files-with/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/fr/docs/python-modules-files/03-text-files-with/</guid><description>&lt;h2 id="quallons-nous-apprendre-"&gt;Qu&amp;rsquo;allons-nous apprendre ?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ouvrir un fichier&lt;/strong&gt; avec &lt;code&gt;open&lt;/code&gt; et les &lt;strong&gt;modes d&amp;rsquo;ouverture&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Pourquoi un fichier &lt;strong&gt;doit être fermé&lt;/strong&gt;, et comment &lt;strong&gt;&lt;code&gt;with&lt;/code&gt;&lt;/strong&gt; le fait automatiquement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La lecture&lt;/strong&gt; : le fichier entier, ligne par ligne.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;L&amp;rsquo;écriture&lt;/strong&gt; et &lt;strong&gt;l&amp;rsquo;ajout&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Un chemin &lt;strong&gt;robuste&lt;/strong&gt;, qui ne dépend pas de l&amp;rsquo;endroit d&amp;rsquo;où l&amp;rsquo;on lance (promis dans le thème sur l&amp;rsquo;ordinateur, le système d&amp;rsquo;exploitation et le réseau !).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pourquoi-en-avons-nous-besoin-"&gt;Pourquoi en avons-nous besoin ?&lt;/h2&gt;
&lt;p&gt;Le thème sur l&amp;rsquo;ordinateur, le système d&amp;rsquo;exploitation et le réseau : « tout ce qui est en RAM disparaît à la fin du programme ». Les fichiers sont le moyen de base pour enregistrer des informations sur le &lt;strong&gt;stockage&lt;/strong&gt; : réglages, rapports, historique, données d&amp;rsquo;import et d&amp;rsquo;export. Le compteur qui revenait toujours à 1 dans &lt;code&gt;memory_test.py&lt;/code&gt; ? Aujourd&amp;rsquo;hui, nous allons le faire survivre d&amp;rsquo;une exécution à l&amp;rsquo;autre.&lt;/p&gt;</description></item><item><title>JSON : lire, écrire et enregistrer des données</title><link>https://intro-kodkod-6.nm-ambition.com/fr/docs/python-modules-files/04-json/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://intro-kodkod-6.nm-ambition.com/fr/docs/python-modules-files/04-json/</guid><description>&lt;h2 id="quallons-nous-apprendre-"&gt;Qu&amp;rsquo;allons-nous apprendre ?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ce qu&amp;rsquo;est &lt;strong&gt;JSON&lt;/strong&gt; et à quoi il ressemble.&lt;/li&gt;
&lt;li&gt;Comment JSON correspond aux &lt;strong&gt;dict&lt;/strong&gt; et &lt;strong&gt;list&lt;/strong&gt; de Python.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enregistrer&lt;/strong&gt; dans un fichier et charger depuis un fichier.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Convertir&lt;/strong&gt; entre une chaîne JSON et des données.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="pourquoi-en-avons-nous-besoin-"&gt;Pourquoi en avons-nous besoin ?&lt;/h2&gt;
&lt;p&gt;Dans la leçon précédente, nous avons enregistré du texte, et pour cela nous avons inventé notre propre « format » : &lt;code&gt;Dana,90&lt;/code&gt; sur chaque ligne. Supposons maintenant que chaque étudiant ait une &lt;strong&gt;liste&lt;/strong&gt; de notes, une &lt;strong&gt;adresse&lt;/strong&gt; avec une ville et une rue, et un &lt;strong&gt;indicateur&lt;/strong&gt; &lt;code&gt;is_active&lt;/code&gt;. Comment enregistrer cela dans une ligne de texte ? Chacun inventera un format différent, et il faudra écrire un code d&amp;rsquo;analyse compliqué.&lt;/p&gt;</description></item></channel></rss>