Bonjour à tous,
Je bloque sur un script Python que je n'arrive pas à formuler correctement.
Je cherche à automatiser la découpe d'un fichier .txt ligne après ligne en indiquant les plages de valeur.
exemple de fichier .txt
tititototata...
Après traitement par le script, j'aurais une liste
['titi', 'toto', 'tata', ....]
J'ai réussi à faire en partie cette étape:
Pour une ligne le script fait le job. J'ai bien une liste avec les valeurs découpées en fonction des plages données dans le dictionnaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #création du dictionnaire contenant les plages de valeur dicoSlice = {0:2,2:8,8:13,13:30,30:35,35:52} #création d'une liste pour récupérer les données traitées listeSlice = [] #ouverture du fichier mon_fichier = open("donnees.txt", "r") #récupération des lignes dans une liste contenu = [line.strip('\n') for line in mon_fichier.readlines()] fichier = [[line] for line in contenu] mon_fichier.close() #Création d'une boucle imbriquée pour réaliser le découpage des données for chaine in fichier: for cle,valeur in dicoSlice.items(): ligne = chaine[0][cle:valeur] listeSlice.append(ligne)
Par contre, quand je dois traiter plusieurs lignes, un problème se pose. Je récupère l'ensemble des lignes dans la même liste.
Je cherche donc à créer autant de liste que de ligne. J'ai trouvé cette fonction qui me permet de faire un dictionnaire de liste en me basant sur le nombre de ligne. Par contre, je n'arrive pas à passer une ligne par liste.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 def createList(name, n): result = {} for i in range(n): nameList = name + str(i+1) result[nameList] = [] return result res = createList("list", len(fichier))
cordialement,
romain
Partager