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 :
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
Le fichier est formaté pour mediawiki, il me semblai que ce serait plus simple pour repérer quelle ligne correspond à quoi.

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
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)
Désolé si mon code ne mène nul part, je suis au max la

Merci,
Wom