fichier texte vers dictionnaire
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:
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:
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 :oops:
Merci,
Wom