<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Python_%3A_Les_fichiers</id>
	<title>Python : Les fichiers - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Python_%3A_Les_fichiers"/>
	<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Python_:_Les_fichiers&amp;action=history"/>
	<updated>2026-06-12T02:35:28Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Python_:_Les_fichiers&amp;diff=2230&amp;oldid=prev</id>
		<title>Justine le 22 juin 2022 à 12:05</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Python_:_Les_fichiers&amp;diff=2230&amp;oldid=prev"/>
		<updated>2022-06-22T12:05:36Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 22 juin 2022 à 12:05&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Ligne 1 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 1 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:prog]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:python]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Ouverture de fichiers =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Ouverture de fichiers =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Python_:_Les_fichiers&amp;diff=856&amp;oldid=prev</id>
		<title>Justine le 3 avril 2019 à 20:33</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Python_:_Les_fichiers&amp;diff=856&amp;oldid=prev"/>
		<updated>2019-04-03T20:33:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 3 avril 2019 à 20:33&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l119&quot;&gt;Ligne 119 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 119 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-Supprimer un dossier et son contenu (avec shutil):&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-Supprimer un dossier et son contenu (avec shutil):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;os.rmdir(&amp;#039;/chemin/dossier_vide/&amp;#039;)&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;os.rmdir(&amp;#039;/chemin/dossier_vide/&amp;#039;)&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Tests sur les fichiers =&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Tests sur les fichiers =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l133&quot;&gt;Ligne 133 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 134 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-Vérifier si c&amp;#039;est un dossier:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-Vérifier si c&amp;#039;est un dossier:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;if os.path.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;isfile&lt;/del&gt;(&#039;/chemin/fichier.txt&#039;):&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;if os.path.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;isdir&lt;/ins&gt;(&#039;/chemin/fichier.txt&#039;):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;amp;nbsp; &amp;amp;nbsp; print(&amp;quot;L&amp;#039;élément est un fichier.&amp;quot;)&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;amp;nbsp; &amp;amp;nbsp; print(&amp;quot;L&amp;#039;élément est un fichier.&amp;quot;)&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l140&quot;&gt;Ligne 140 :&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Ligne 141 :&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     print(&amp;quot;L&amp;#039;élément est un lien.&amp;quot;)&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     print(&amp;quot;L&amp;#039;élément est un lien.&amp;quot;)&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vérifier si il s&#039;agit d&#039;un point de montage :&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Vérifier si il s&#039;agit d&#039;un point de montage&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;nbsp;&lt;/ins&gt;:&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;if os.path.ismount(&amp;#039;/chemin/mount_point/&amp;#039;):&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;if os.path.ismount(&amp;#039;/chemin/mount_point/&amp;#039;):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     print(&amp;quot;L&amp;#039;élément est un point de montage.&amp;quot;)&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     print(&amp;quot;L&amp;#039;élément est un point de montage.&amp;quot;)&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Plutôt que de faire ce genre de tests, il vaut parfois mieux utiliser un bloc try, ce qui évite d&#039;avoir une co**lle si le fichier est modifié entre l&#039;ouverture et le test :&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Plutôt que de faire ce genre de tests, il vaut parfois mieux utiliser un bloc try, ce qui évite d&#039;avoir une co**lle si le fichier est modifié entre l&#039;ouverture et le test&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;amp;nbsp;&lt;/ins&gt;:&amp;amp;nbsp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;try:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;try:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     with open(&amp;#039;schrodinger-file.txt&amp;#039;, &amp;#039;r&amp;#039;) as fichier:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     with open(&amp;#039;schrodinger-file.txt&amp;#039;, &amp;#039;r&amp;#039;) as fichier:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Python_:_Les_fichiers&amp;diff=854&amp;oldid=prev</id>
		<title>Justine : Page créée avec «  = Ouverture de fichiers =  Pour travailler avec le contenu des fichiers (lire ou écrire), il faut « ouvrir » ces fichiers avec la fonction « open() ». Cette fonction... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Python_:_Les_fichiers&amp;diff=854&amp;oldid=prev"/>
		<updated>2019-04-03T20:10:36Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec «  = Ouverture de fichiers =  Pour travailler avec le contenu des fichiers (lire ou écrire), il faut « ouvrir » ces fichiers avec la fonction « open() ». Cette fonction... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= Ouverture de fichiers =&lt;br /&gt;
&lt;br /&gt;
Pour travailler avec le contenu des fichiers (lire ou écrire), il faut « ouvrir » ces fichiers avec la fonction « open() ». Cette fonction prend obligatoirement deux paramètres : le fichier (avec son chemin relatif ou absolu), et le mode d&amp;#039;ouverture. C&amp;#039;est le « mode d&amp;#039;ouverture » qui défini si on va simplement lire le contenu du fichier, ou si on va écrire dedans.&lt;br /&gt;
&lt;br /&gt;
Ici, nous travailons avec un fichiers &amp;quot;liste-courses.txt&amp;quot;, qui contient les lignes suivantes :&lt;br /&gt;
&amp;lt;pre&amp;gt;salade&lt;br /&gt;
tomates&lt;br /&gt;
oignons&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== En lecture ==&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/env python3&lt;br /&gt;
&lt;br /&gt;
# ouverture en lecture&lt;br /&gt;
fichier = open(&amp;#039;liste-courses.txt&amp;#039;, &amp;#039;r&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
# on parcours le contenu du fichier ligne par ligne&lt;br /&gt;
for ligne in fichier:&lt;br /&gt;
    print(ligne)&lt;br /&gt;
&lt;br /&gt;
# il ne faut pas oublier de fermer le fichier&lt;br /&gt;
fichier.close()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== En écriture ==&lt;br /&gt;
&lt;br /&gt;
Le mode write écrase le contenu du fichier, et le créée&amp;amp;nbsp;si il n&amp;#039;existe pas.&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/env python3&lt;br /&gt;
&lt;br /&gt;
# ouverture en écriture&lt;br /&gt;
fichier = open(&amp;#039;liste-courses.txt&amp;#039;, &amp;#039;w&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
# on écrit des éléments dans notre fichier&lt;br /&gt;
fichier.write(&amp;#039;bananes\n&amp;#039;)&lt;br /&gt;
fichier.write(&amp;#039;pommes\n&amp;#039;)&lt;br /&gt;
fichier.write(&amp;#039;fraises\n&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
fichier.close()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== En append ==&lt;br /&gt;
&lt;br /&gt;
On peut aussi ouvrir un fichier de façon à écrire à sa suite. Tout comme le mode écriture, un fichier qui n&amp;#039;existait pas est créé.&amp;amp;nbsp;Pratique pour du log !&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/usr/bin/env python3&lt;br /&gt;
&lt;br /&gt;
# ouverture en écriture (à la suite)&lt;br /&gt;
fichier = open(&amp;#039;liste-courses.txt&amp;#039;, &amp;#039;a&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
fichier.write(&amp;#039;salade\n&amp;#039;)&lt;br /&gt;
fichier.write(&amp;#039;tomates\n&amp;#039;)&lt;br /&gt;
fichier.write(&amp;#039;oignons\n&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
fichier.close()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Fonctions =&lt;br /&gt;
&lt;br /&gt;
== open() ==&lt;br /&gt;
&lt;br /&gt;
Cette fonction prend en arguments :&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
-le nom du fichier (chemin absolu ou relatif)&amp;lt;br/&amp;gt; -Le mode d&amp;#039;ouverture (par défaut, &amp;#039;r&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
Le fichier ouvert étant verrouilé, il ne faut oublier de le close().&lt;br /&gt;
&lt;br /&gt;
Lors du parcours du fichier, si une erreur se produit et que le fichier n&amp;#039;est pas fermé, il devient inutilisable dans la suite du programme. Dans certains cas, il est donc préférable d&amp;#039;utiliser la fonction `open()` avec le mot clé `with` qui s&amp;#039;occupera de fermer le fichier en cas d&amp;#039;exception. Dans ce cas il n&amp;#039;est plus nécessaire de fermer explicitement le fichier.&lt;br /&gt;
&amp;lt;pre&amp;gt;with open(&amp;#039;liste-courses.txt&amp;#039;, &amp;#039;r&amp;#039;) as fichier:&lt;br /&gt;
    contenu = fichier.read()&lt;br /&gt;
    print(contenu)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ça fonctionne aussi en écriture :&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;with open(&amp;#039;liste-courses.txt&amp;#039;, &amp;#039;w&amp;#039;) as fichier:&lt;br /&gt;
    fichier.write(&amp;#039;papier toilette&amp;#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et en append :&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;with open(&amp;#039;liste-courses.txt&amp;#039;, &amp;#039;a&amp;#039;) as fichier:&lt;br /&gt;
    fichier.write(&amp;#039;dentifrice&amp;#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fonctions de lecture du fichier ==&lt;br /&gt;
&lt;br /&gt;
On en a plusieurs :&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
-read() retourne le contenu du fichier dans un string:&lt;br /&gt;
&amp;lt;pre&amp;gt;contenu = fichier.read()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-readline() retourne la première ligne à son premier appel, la deuxième à son deuxième...&lt;br /&gt;
&amp;lt;pre&amp;gt;ligne1 = fichier.readline()  # ligne 1&lt;br /&gt;
ligne2 = fichier.readline()  # ligne 2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-readlines() renvoie les lignes du fichier dans une liste :&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;liste_lignes = fichier.readlines()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-Le mieux reste la boucle for :&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;for ligne in fichier:&lt;br /&gt;
    […]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Opérations sur les fichiers =&lt;br /&gt;
&lt;br /&gt;
Excepté la dernière, toutes ces commandes sont issues du module &amp;#039;os&amp;#039;.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
-Se placer dans un dossier :&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;os.chdir(&amp;#039;/chemin/dossier/&amp;#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-Récupérer le répertoire de travail&lt;br /&gt;
&amp;lt;pre&amp;gt;chemin = os.getcwd()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-Lister le contenu d&amp;#039;un dossier&lt;br /&gt;
&amp;lt;pre&amp;gt;liste = os.listdir(&amp;#039;/chemin/dossier/&amp;#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-Renommer un fichier / un dossier:&lt;br /&gt;
&amp;lt;pre&amp;gt;os.rename(&amp;#039;ancien_nom.txt&amp;#039;, &amp;#039;nouveau_nom.txt&amp;#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-Supprimer un fichier&lt;br /&gt;
&amp;lt;pre&amp;gt;os.remove(&amp;#039;fichier.txt&amp;#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-Créer un dossier&lt;br /&gt;
&amp;lt;pre&amp;gt;os.mkdir(&amp;#039;/chemin/dossier_vide/&amp;#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-Supprimer un dossier vide&lt;br /&gt;
&amp;lt;pre&amp;gt;os.rmdir(&amp;#039;/chemin/dossier_vide/&amp;#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-Supprimer un dossier et son contenu (avec shutil):&lt;br /&gt;
&amp;lt;pre&amp;gt;os.rmdir(&amp;#039;/chemin/dossier_vide/&amp;#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Tests sur les fichiers =&lt;br /&gt;
&lt;br /&gt;
Encore une fois, tout est issu du module os.&lt;br /&gt;
&lt;br /&gt;
-Vérifier si le dossier/fichier existe&lt;br /&gt;
&amp;lt;pre&amp;gt;if os.path.exists(&amp;#039;/chemin/fichier.txt&amp;#039;):&lt;br /&gt;
    print(&amp;#039;Le fichier existe.&amp;#039;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-Vérifier si c&amp;#039;est un fichier&lt;br /&gt;
&amp;lt;pre&amp;gt;if os.path.isfile(&amp;#039;/chemin/fichier.txt&amp;#039;):&lt;br /&gt;
    print(&amp;quot;L&amp;#039;élément est un fichier.&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-Vérifier si c&amp;#039;est un dossier:&lt;br /&gt;
&amp;lt;pre&amp;gt;if os.path.isfile(&amp;#039;/chemin/fichier.txt&amp;#039;):&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp; print(&amp;quot;L&amp;#039;élément est un fichier.&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-Vérifier si c&amp;#039;est un lien&lt;br /&gt;
&amp;lt;pre&amp;gt;if os.path.islink(&amp;#039;/chemin/symlink&amp;#039;):&lt;br /&gt;
    print(&amp;quot;L&amp;#039;élément est un lien.&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vérifier si il s&amp;#039;agit d&amp;#039;un point de montage :&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;if os.path.ismount(&amp;#039;/chemin/mount_point/&amp;#039;):&lt;br /&gt;
    print(&amp;quot;L&amp;#039;élément est un point de montage.&amp;quot;)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Plutôt que de faire ce genre de tests, il vaut parfois mieux utiliser un bloc try, ce qui évite d&amp;#039;avoir une co**lle si le fichier est modifié entre l&amp;#039;ouverture et le test :&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;try:&lt;br /&gt;
    with open(&amp;#039;schrodinger-file.txt&amp;#039;, &amp;#039;r&amp;#039;) as fichier:&lt;br /&gt;
        contenu = fichier.readlines()&lt;br /&gt;
except IOError as erreur:&lt;br /&gt;
    print(erreur)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Exemples =&lt;br /&gt;
&lt;br /&gt;
== Numérotation des lignes d&amp;#039;un fichier ==&lt;br /&gt;
&amp;lt;pre&amp;gt;# import du module `os`&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
# initialisation d&amp;#039;un compteur pour le numéro de ligne&lt;br /&gt;
i = 0&lt;br /&gt;
&lt;br /&gt;
# demande de saisie du nom du fichier à traiter&lt;br /&gt;
nom_fichier = input(&amp;#039;Saisir nom du fichier : &amp;#039;)&lt;br /&gt;
&lt;br /&gt;
# si le fichier existe&lt;br /&gt;
if os.path.isfile(nom_fichier):&lt;br /&gt;
    # ouvrir le fichier&lt;br /&gt;
    fichier = open(nom_fichier, &amp;#039;r&amp;#039;)&lt;br /&gt;
# sinon&lt;br /&gt;
else:&lt;br /&gt;
    # afficher un message d&amp;#039;erreur&lt;br /&gt;
    print(&amp;#039;Erreur : `&amp;#039; + nom_fichier + &amp;#039;` n\&amp;#039;existe pas &amp;#039; +&lt;br /&gt;
          &amp;#039;ou n\&amp;#039;est pas un fichier.&amp;#039;)&lt;br /&gt;
    # quitter le programme avec un code d&amp;#039;erreur&lt;br /&gt;
    exit(1)&lt;br /&gt;
&lt;br /&gt;
# récupérer les lignes du fichier dans une liste&lt;br /&gt;
contenu = fichier.readlines()&lt;br /&gt;
# fermer le fichier&lt;br /&gt;
fichier.close()&lt;br /&gt;
&lt;br /&gt;
# parcours de chaque élément de la liste de lignes&lt;br /&gt;
for ligne in contenu:&lt;br /&gt;
    # incrémentation du numéro de ligne&lt;br /&gt;
    i += 1&lt;br /&gt;
    # suppression du retour chariot en fin de ligne&lt;br /&gt;
    ligne = ligne.rstrip()&lt;br /&gt;
    # affichage du numéro et de la ligne&lt;br /&gt;
    print(str(i) + &amp;#039;. &amp;#039; + ligne)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce script peut être optimisé de la façon suivante :&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
-Sécurité : On a remplacé le test `isfile` par un bloc `try: […] except:`. De cette manière si l&amp;#039;élément saisit par l&amp;#039;utilisateur n&amp;#039;est pas un fichier, n&amp;#039;est pas lisible ou est supprimé entre temps, une exception est levée et capturée, plutôt que de faire planter le programme.&amp;lt;br/&amp;gt; -Sécurité : On a utilisé le mot clé `with` pour l&amp;#039;ouverture du fichier. De cette manière, si une erreur se produit lors du parcours du fichier, celui-ci est refermé automatiquement, contrairement à l&amp;#039;ouverture classique, pour laquelle il faut explicitement refermer le fichier avec la méthode `close()`. Sans ça, il serait impossible de réutiliser le fichier dans la suite programme.&amp;lt;br/&amp;gt; -Performance : L&amp;#039;utilisation du bloc `try: […] except:` permet d&amp;#039;éviter l&amp;#039;import du module `os`, et donc de limiter le nombre de lignes, ainsi que l&amp;#039;empreinte mémoire de notre script.&amp;lt;br/&amp;gt; -Performance : On a remplacé l&amp;#039;utilisation de la méthode `readlines()` par un parcours de l&amp;#039;objet avec la boucle `for` directement sur celui-ci (comme s&amp;#039;il s&amp;#039;agissait d&amp;#039;une liste). Sur de petits fichiers le gain est négligeable, mais pour de très gros fichier cette optimisation prend tout son sens.&lt;br /&gt;
&lt;br /&gt;
Bien sûr, il faut savoir s&amp;#039;adapter en fonction de l&amp;#039;utilisation et du contexte.&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;# initialisation d&amp;#039;un compteur pour le numéro de ligne&lt;br /&gt;
i = 0&lt;br /&gt;
&lt;br /&gt;
# demande de saisie du nom du fichier à traiter&lt;br /&gt;
nom_fichier_in = input(&amp;#039;Saisir nom du fichier : &amp;#039;)&lt;br /&gt;
&lt;br /&gt;
# « essayer » le bloc d&amp;#039;instructions&lt;br /&gt;
try:&lt;br /&gt;
    # ouvrir le fichier&lt;br /&gt;
    with open(nom_fichier_in, &amp;#039;r&amp;#039;) as fichier:&lt;br /&gt;
        # parcours de l&amp;#039;objet `fichier`&lt;br /&gt;
        for ligne in fichier:&lt;br /&gt;
            # incrémentation du numéro de ligne&lt;br /&gt;
            i += 1&lt;br /&gt;
            # suppression du retour chariot en fin de ligne&lt;br /&gt;
            ligne = ligne.rstrip()&lt;br /&gt;
            # affichage du numéro et de la ligne&lt;br /&gt;
            print(str(i) + &amp;#039;. &amp;#039; + ligne)&lt;br /&gt;
# en cas d&amp;#039;erreur de type `IOError`, la récupérer dans la variable `erreur`&lt;br /&gt;
except IOError as erreur:&lt;br /&gt;
    # afficher l&amp;#039;erreur&lt;br /&gt;
    print(erreur)&lt;br /&gt;
    # quitter le programme avec un code d&amp;#039;erreur&lt;br /&gt;
    exit(1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Même exemple avec écriture :&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;pre&amp;gt;# initialisation d&amp;#039;un compteur pour le numéro de ligne&lt;br /&gt;
i = 0&lt;br /&gt;
&lt;br /&gt;
# saisies de noms de fichiers&lt;br /&gt;
nom_fichier_in = input(&amp;#039;Saisir nom du fichier source : &amp;#039;)&lt;br /&gt;
nom_fichier_out = input(&amp;#039;Saisir nom du fichier de sortie : &amp;#039;)&lt;br /&gt;
&lt;br /&gt;
# les fichiers doivent être différents&lt;br /&gt;
if nom_fichier_in == nom_fichier_out:&lt;br /&gt;
    print(&amp;#039;Impossible d\&amp;#039;utiliser le même fichier en entrée et en sortie !&amp;#039;)&lt;br /&gt;
    exit(1)&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    # ouvertures&lt;br /&gt;
    fichier_in = open(nom_fichier_in, &amp;#039;r&amp;#039;)&lt;br /&gt;
    fichier_out = open(nom_fichier_out, &amp;#039;w&amp;#039;)&lt;br /&gt;
    # parcours `fichier_in`&lt;br /&gt;
    for ligne in fichier_in:&lt;br /&gt;
        i += 1&lt;br /&gt;
        # écriture `fichier_out`&lt;br /&gt;
        fichier_out.write(str(i) + &amp;#039;. &amp;#039; + ligne)&lt;br /&gt;
    # fermetures&lt;br /&gt;
    fichier_in.close()&lt;br /&gt;
    fichier_out.close()&lt;br /&gt;
except IOError as erreur:&lt;br /&gt;
    print(erreur)&lt;br /&gt;
    exit(1)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= À ne pas faire...! =&lt;br /&gt;
&lt;br /&gt;
== Ouvrir en écriture dans une boucle&amp;amp;nbsp; ==&lt;br /&gt;
&amp;lt;pre&amp;gt;# ouvertures&lt;br /&gt;
fichier_in = open(nom_fichier_in, &amp;#039;r&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
# parcours `fichier_in`&lt;br /&gt;
for ligne in fichier_in:&lt;br /&gt;
    # écriture `fichier_out`&lt;br /&gt;
    fichier_out = open(nom_fichier_out, &amp;#039;w&amp;#039;)&lt;br /&gt;
    fichier_out.write(ligne)&lt;br /&gt;
    fichier_out.close()&lt;br /&gt;
&lt;br /&gt;
# fermetures&lt;br /&gt;
fichier_in.close()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ici, on écrase le fichier à chaque itération de la boucle, et à la fin on aura que la fin du fichier...&lt;br /&gt;
&lt;br /&gt;
= À savoir... =&lt;br /&gt;
&lt;br /&gt;
La fonction `open()` renvoie un objet de la classe `TextIOWrapper`, qui elle-même hérite de `TextIOBase`. Ce sont les méthodes de ces classe que nous utilisons pour interagir avec le fichier. Il en existe d&amp;#039;autre que celles que nous avons vu, vous pouvez les retrouver dans la documentation Python3.&lt;br /&gt;
&lt;br /&gt;
On peut écrire et sauvegarder des objets dans des fichiers (on écrit en binaire)&amp;amp;nbsp;avec le module pickle pour les retrouver après. C&amp;#039;est vachement utile.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;/div&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
</feed>