Les méthodes pour manipuler les fichiers sont les suivantes.
open(fichier, mode)" pour ouvrir un fichier : fichier est le nom (chemin d'accès) du fichier à ouvrir, et mode est le mode d'ouverture ("r" / "w" / "a" avec un "b" supplémentaire pour les fichiers binaires). Cette fonction renvoie un objet de type « fichier ».
f.read(n)" pour lire un certain nombre de caractères (octet pour les fichiers binaires). Si n est négatif, renvoie tous les octets du fichier.
f.readline()" renvoie la ligne suivante. Quand il n'y a pas de ligne suivante (fin de fichier), renvoie la chaine vide "".
f.readlines()" renvoie la liste de toutes les lignes restantes. Quand il n'y a plus de lignes dans le fichier, renvoie la liste vide [].
f.write(chaine)" pour ajouter une chaine de caractères dans un fichier.
f.close()" pour fermer un fichier ouvert.
Écrivez un petit programme Python qui crée un fichier test.txt contenant le texte "Python, c'est moins compliqué que Java.".
(Si le fichier test.txt existe déjà, il est remplacé.)
Écrivez une procédure qui prend deux arguments : un nom de fichier et un numéro de ligne. La procédure affichera (avec print) la ligne correspondante (et seulement celle ci) du fichier.
Écrivez une fonction qui compte le nombre de lignes présentes dans un fichier existant.
Écrivez une fonction qui rajoute, à la fin d'un fichier existant, la ligne "Ce fichier contient n lignes.", où n est le nombre de lignes du fichier.
Écrivez une fonction qui affiche la ligne la plus longue d'un fichier.
Écrivez une fonction qui numérote les lignes non-vides d'un fichier.
Écrivez une fonction qui transforme un fichier texte en fichier texte « double interligne » en rajoutant une ligne vide entre chaque ligne.
Écrivez une fonction qui transforme un fichier texte en fichier texte « espace triple » en remplaçant chaque espace par trois espaces.
Il y a de nombreuses manières de parcourir les lignes d'un fichier :
f = open(fichier, "r")
lignes = f.readlines()
for i in range(len(lignes)):
... quelque chose avec lignes[i] ...
f = open(fichier, "r")
lignes = f.readlines()
for l in lignes:
... quelque chose avec l ...
f = open(fichier, "r")
l = f.readline()
while l != "":
... quelque chose avec l ...
l = f.readline()
f = open(fichier, "r")
for l in f:
... quelque chose avec l ...
Comparez les avantages et les inconvénients de ces méthodes.