Un petit script python qui balait un fichier ...

wire less Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour.
Je débute en python et j'ai besoin de faire un script personnel.
Je vais d'abord écrire le pseudo code avant d'essayer de le traduire en Python.

j'ai un dictionnaire d’éléments :

dictionnaire = {}
dictionnaire["Element_key_1"] = "Definition_1"
dictionnaire["Element_key_2"] = "Definition_2"
dictionnaire["Element_key_3"] = "Definition_3"
dictionnaire["Element_key_4"] = "Definition_4"

j'ai un fichier :

--- Debut fichier.txt ---

bla bla bla
Element_key_1 ble ble ble
bli bli bli
blo blo Element_key_2 blo
blu blu blu

--- Fin fichier.txt ---

voila, j'ai juste besoin de lire mon fichier, et si je trouve à une certaine ligne un élément de mon dictionnaire, je remplace la ligne toute entière par ma définition.

--- Debut fichier.txt ---

bla bla bla
Definition_1
bli bli bli
Definition_2
blu blu blu

--- Fin fichier.txt ---


-------------------------------------

Mon code maintenant :

--- Debut script.py ---

# -*- coding: utf-8 -*-
# script.py
# "Utilisation : script.py fichier.txt"


import os
import sys

dictionnaire = {} 
dictionnaire["Element_key_1"] = "Definition_1" 
dictionnaire["Element_key_2"] = "Definition_2" 
dictionnaire["Element_key_3"] = "Definition_3" 
dictionnaire["Element_key_4"] = "Definition_4" 

if __name__ == '__main__':
    args = sys.argv[1:]

    if len(args)<1 :
        print "Utilisation erronée"
        print "Utilisation : script.py fichier.txt"
        sys.exit()
    
    print "***************** Fin ******************"

fullFileName = os.path.join(os.path.basename(args[0]), args[0])
file = open(fullFileName)

line = file.readline()

while line:
    for k in dictionnaire.keys
    	if k in line
    		line = dictionnaire(k) + '\n'


--- Fin script.py ---

Est-ce que ça vous parait correct comme script ?

Merci à tous
A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, où est le pseudo code?
0
wire less Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   5
 
... oui, en faite je ne sais peut être pas faire de pseudo code. Je vais tenter de décrire mon algorithme en esperant que ce soit réalisable.
OUVRIR fichier.txt en lecture et écriture
Boucler sur les lignes de fichier.txt
    Boucler sur les clefs de mon dictionnaire
        Si ligne de fichier.txt contient clef de dictionnaire, alors
            Remplacer (écrire) la ligne du fichier par la définition du dictionnaire à l'indice clef.
FERMER fichier.txt


Je siuis en train de suivre le tutoriel python :
https://docs.python.org/fr/2.7/tutorial/inputoutput.html#methods-of-file-objects
Et je me rend compte qu'il n'est probablement pas possible de lire et d'écrire dans un fichier aussi facilement.

? Est-ce qu'il faut d'abord stoker tout le contenu du fichier tel qu'on souhaite l'avoir dans une variable et ensuite ré-écrire complétement le fichier ??
Merci
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > wire less Messages postés 233 Date d'inscription   Statut Membre Dernière intervention  
 
peut-être écrire au fur et à mesure dans un nouveau fichier de sortie, pendant la lecture du fichier d'entrée?
0