{tag>cours python dev todo}}
====== Python: les fichiers ======
Les **fichiers** sont, comme souvent en Python, simples et intuitifs à utiliser, cependant il fau... t pour les **lire**. Nous allons voir qu'avec les fichiers, cette gestion de l'encodage est extrêmement simple puisque c'est l'objet fichier qui va se charger d'encoder et de décoder les cha
nts.
===== Rechercher/traiter dans le système de fichier =====
==== find ====
La commande **find** permet de rechercher des fichiers en fonction de nombreux critères. On pourra cite... cher dans les répertoires /etc et /bin
# tous les fichiers ou dossiers dont le nom commence par a
find /etc... aires pour inhiber
# le développement des noms de fichiers par le shell.
# Le motif doit être transmis sans
age ======
Les filtres permettent de traiter des fichiers texte ou des chaînes de caractères. Ce sont des ... mande via du caractère '|'.
===== Découpage d'un fichier =====
Pour extraire seulement le début d'un fichier on utilise la commande **head**:
<code bash>
# extrai... e
</code>
Pour extraire les dernière lignes d'un fichier, utiliser la commande **tail**:
<code bash>
# ext
python qui correspond à la fois à:
* un (seul) fichier sur le disque;
* un espace de nom pour les vari... 'est pas concevable de tout concentrer en un seul fichier. C'est là qu'intervient la notion de **package**,... *répertoires** ce que que le **module** est aux **fichiers**.
Pour illustrer par la pratique nous allons c... odule_jouet.py
</code>
Ci dessous le contenu des fichiers ''%%__init__%%.py'' et ''module_jouet.py''
<cod
la suite de lignes de commande est écrite dans un fichier texte qu’on appelle un script. Le nom de ce fichier devient alors une nouvelle commande dont le traitement... nt chacune des lignes de commande écrites dans le fichier texte.
La première ligne du fichier est le "shebang" en référence
aux deux premiers caractères de cette l
''os'' a deux rôles:
- Il va définir le nom du fichier qui va être cherché sur le disque dur, qui va s'a... portation =====
Premièrement, il faut trouver le fichier sur le disque dur. Pour cela, Python va regarder ... point d'entrée** (le point d'entrée est le nom du fichier que vous passez à l'interpréteur lorsque vous dém... cruté par défaut;
Ensuite, s'il ne trouve pas ce fichier, il va le chercher dans la variable système qui s
herche le manuel.
La commande man interprète des fichiers de documentation 1 puis les affiche via le lecteur de fichier **less** permettant notamment de faire défiler le... a documentation sur les fonctions, des formats de fichiers ou encore des périphériques. Par conséquent, les... ournies pour le développement de programmes),
- fichiers spéciaux (situés généralement dans /dev),
- fo
shell bash}}
====== Shell: Expansion des noms de fichiers ======
Bash permet à l'utilisateur de définir d... aractères spéciaux pour désigner des ensembles de fichiers ou des répertoires. Avant d'exécuter la commande... oppe les motifs en les remplaçant par les noms de fichiers ou dossiers correspondant. Cette phase est appel... imite à un niveau de l'arborescence du système de fichier.
</note>
===== Classes de caractères =====
Pour
tion de **module**. Un module, c'est en fait un **fichier Python qui finit en .py**, un fichier Python normal, et lorsqu'on importe ce fichier avec l'instruction import, nous allons voir ça dans quelque... de mettre des opérations similaires dans le même fichier. Donc en fait vous pouvez voir un module comme un
Il
est possible de définir des fonctions dans les fichiers .bashrc ou .profile qui permettent d’avoir des t... dire qu’une fonction, comme définie ici (dans les fichiers de préférences de l'utilisateur .bashrc ou .prof... ipt.
Une autre bonne pratique est de séparer les fichiers contenant les alias et les fonctions en créant des fichiers .alias et .func et de rajouter dans le fichier .
ment un itérateur. C'est par exemple le cas des **fichiers**. **Pourquoi est-ce que les fichiers sont des itérateurs**? On le comprend assez aisément; on voit bien que si on avait à lire un fichier qui fasse des dizaines de megabytes ou des centai... s données en mémoire. Le choix de Python pour les fichiers, est de fournir un itérateur qui va parcourir li
emple une variable *x*, qui coexiste dans le même fichier à l'intérieur d'une fonction et à l'intérieur d'u... commencer par créer un module `spam.py`, donc un fichier python qui s'appelle `spam.py` contenant une cons... f():
print(x)
</code>
On définit un deuxième fichier python, `egg.py`, comme ceci:
<code python egg.p... uer ''%%import spam%%''. L'interpréteur recherche fichier **spam.py**, nous verrons dans une prochainement
[[120_aide|Trouver de l’aide]]
* [[130_gestion_fichiers_et_repertoires|Gérer les répertoires et les fichiers]]
* [[140_utilisateurs_et_droits|Les utilisateurs ... droits]]
* [[150_traitement_de_texte|Traiter un fichier de texte]]
Séquence 2: "Interagissez avec le Bas... ide à l’interaction]]
* [[220_abreviations_noms_fichiers|Abréviations pour le nom des fichiers]]
* [[23
ry -c
# enregistrer l'historique courant dans le fichier
history -w .bash_history.backup
# ajoute le contenu du fichier à l'historique courant
history -r .bash_history.b... file1.txt
42 file1.txt
# ici on crée un nouveau fichier par altération du nom de fichier
# récupéré sur l'argument de la commande précédente
$ touch !$:s/1/2/
#