Un petit script python qui balait un fichier ...

Fermé
wire less Messages postés 210 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 29 août 2018 - 28 août 2018 à 13:58
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 - 29 août 2018 à 08:32
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 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
28 août 2018 à 19:31
bonjour, où est le pseudo code?
0
wire less Messages postés 210 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 29 août 2018 5
29 août 2018 à 05:43
... 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 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477 > wire less Messages postés 210 Date d'inscription lundi 5 octobre 2009 Statut Membre Dernière intervention 29 août 2018
29 août 2018 à 08:32
peut-être écrire au fur et à mesure dans un nouveau fichier de sortie, pendant la lecture du fichier d'entrée?
0