Manipulations de fichiers texte
I Travail préliminaire
1) Rappel des instructions de base
Pour pouvoir travailler sur un fichier texte avec Python, il faut :
*l’ouvrir (avec open, en précisant le mode voulu : ‘r’ lecture,’w’ écriture, ‘a’
append(ajout) ))
*effectuer le traitement voulu
* le fermer ( avec close) ( ne pas oublier, sinon rien ne marche !! )
On a, pour cela, besoin de son chemin d’accés :
*sous linux, le chemin d’accès s’écrit avec des / ( par exemple /home/cpge/perso/essai.txt )
*sous windows les chemins d’accés sont écrits avec des \ .(par exemple
C:\Users\Claire\Documents\TRAVAILCLAIRE\BCPST2\ essai.txt)
Pour pouvoir les utiliser avec python, il faut doubler le \ . ou utiliser des / à la place de \ .
Pour savoir dans quel répertoire on travaille :
getcwd( )
( après avoir validé la commande from os import getcwd )
EVITER d’importer tout le package os…certaines commandes réservent des surprises
Pour changer le répertoire de travail courant et ainsi pouvoir taper seulement le nom du fichier
et son extension ( et éviter de taper tout le chemin d’accés) on utilise chdir
( après avoir validé la commande from os import chdir )
EVITER d’importer tout le package os…( mieux vaut le dire 2 fois qu’une !)
Par exemple on tape :
chdir("C:\\Users\\Claire\\Documents\\TRAVAILCLAIRE\\BCPST2\\info\\cours
basique\\infotous 2016 2017")
(ne pas oublier les " indiquant qu’on a une chaine de caractères
Remarque : lorsqu’un programme python crée un fichier, si l’on veut que ce fichier soit
directement enregistré dans le répertoire de travail sans se casser la tête avec le chemin
d’accés, il suffit de faire « ctrl+maj+E » ou « executer le script ». Attention , le shell est alors
réinitialisé !!
Pour ouvrir un fichier en lecture :
monfich=open(filename,’r’)
Ensuite , plusieurs façons d’avoir accès à son contenu :
* tout charger d’un coup :
contenu=monfich.readlines()#renvoie une liste de chaines de caractères, chacune
correspondant à une ligne ( y compris les caractères d’espacement, les tabulations, les
passages à la ligne…)
ou encore :