Bonjour à tous,
Je cherche à structurer le fichier texte suivant en vue de l'intégrer à une base de données. J'ai sais que l'on peut utiliser sqlite avec python, mais je crains que ça ne complique encore les choses.
J'essaie donc de créer un dictionnaire contenant pour chaque titre son auteur, sa rubrique, sous rubrique, page et numéro de revue. pour les 1ere lignes ça donnerait :
'Du côté de la poésie et de l'espoir','Editorial',,,'Louis Pauwels','5','N°1'
Voici le fichier texte du numéro 3, je me suis déjà paluché les deux premiers à la main :
Le fichier est formaté pour mediawiki, il me semblai que ce serait plus simple pour repérer quelle ligne correspond à quoi.
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110 = N°3 = == Editorial == 5 Du côté de la poésie et de l'espoir par Louis Pauwels == Chronique de notre civilisation == 9 Trois hommes sur le bateau == Le mouvement des connaissances == 15 Boucher de Perthes par Stéphane Arnaud Le génie que j'ai vu vivre en liberté par George Magloire Quelle formidable machine que l'homme! Par Aldoux Huxley == Les civilisations disparues == 41 Le plus ancien "haut-lieu" du monde? Par Daniel Ruzo == L'art fantastique de tous les temps == 49 Assur : grandeur et terreur par Jacques Ménétrier Un peintre fantastique inconnu par Jacques Sternberg == Les ouvertures de la science == 71 Interview d'un calculateur prodige par Jacques Mousseau Trois fenêtres sont ouvertes sur l'infini par Jacques Bergier == La littérature différente == 83 Voltaire, contemporain de l'ère cosmique par Aimé Michel Le pacifiste par Arthur C. Clarke == Les mystères du monde animal == 95 A la recherche du serpent de mer par Bernard Heuvelmans == L'histoire invisible == 105 Quand l'Angleterre cessa d'être une île par Gabriel Véraldi == L'amour à refaire == 113 Le couple, le foyer, la femme, la liberté Propos choisis de G.-K. Chesterton == Informations et Critiques, Analyse des uvres, des Idées, des Travaux et desDécouvertes == === L'histoire === 122 Un étonnant témoignage La première histoire de la Géologie L'Histoire en action 128 === L'archéologie === Première utilisation d'une machine à remonter le temps / Le mystère des tectites / Fouilles et découvertes récentes 130 === La sociologie === Un livre extraordinaire / Un ouvrage important / Arthur Koestler / La Société Pierre Teilhard de Chardin 139 === Une nouvelle vague en sciences === Surhommes et dauphins / Un des ouvrages les plus importants de notre époque 143 === Les arts anciens et modernes === Bilan d'une exposition capitale / Bilan d'une exposition inutile 146 === La civilisation noire === Révélation sur la magie au Congo 148 === La culture en U.R.S.S. === Un documenL sur l'art abstrait 150 === La littérature anglo-saxonne === Un extraodinaire témoignage sur les trafics de chaire humaine / Une anthologie française de l'humour anglo-américain 153 === Le cinéma === Points de vue sur l'aventure Renoir 155 === La télévision === Une déclaration de Louis Merlin 157 === La géo-politique === Une histoire mondiale du pétrole 158 === La musique === «La voix humaine» / J .-S. Bach
Et voici mon code, qui échoue avec un : line 35, in <module>
planete[titre]=(rubrique,srubrique,ssrubrique,auteur,npage,nrevue)
NameError: name 'rubrique' is not defined
Désolé si mon code ne mène nul part, je suis au max la
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #TODO: lis le fichier C:\Datas\Planete fs = open('C:\\Datas\\Planete1.txt', encoding="utf8") #fs : fichier source #fd = open('C:\\Datas\\PlaneteD.txt', encoding="utf8") #fd : fichier destination while 1: ft = fs.readline() # ft : fichier de travail print(ft) # TODO: si la ligne commence par "= ": c'est un numero-revue if ft.startswith('= '): nrevue = ft #TODO: si la ligne commence par "== ": c'est une rubrique elif ft.startswith('== '): rubrique = ft #TODO: si la ligne .startswith('=== '): c'est une sous-rubrique elif ft.startswith('=== '): srubrique = ft #TODO: si la ligne .startswith('==== '): c'est une sous-sous-rubrique elif ft.startswith('==== '): ssrubrique = ft #TODO: si la ligne.lower() .startswith('par ','un entretien de ','avec ','présentées par ','Propos choisis de ','de '): #c'est l'auteur de l'article elif ft.lower().startswith('par ','un entretien de ','avec ','présentées par ','propos choisis de ','de '): auteur = ft #TODO: si la ligne .isalpha(): c'est le titre-article elif ft.isalpha(): titre = ft #TODO: si la ligne isdecimal(): c'est le numero-page elif ft.isdecimal(): npage = str(ft) #TODO: si la ligne est vide, passer elif ft.isspace(): pass planete[titre]=(rubrique,srubrique,ssrubrique,auteur,npage,nrevue)
Merci,
Wom
Partager