39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
|
import csv
|
||
|
import re
|
||
|
|
||
|
# Remplacer par le chemin vers le fichier Org-mode
|
||
|
fichier_org = 'intrigues.org'
|
||
|
|
||
|
# Expressions régulières pour extraire les dates et les intrigues
|
||
|
regex_date = r'(\d+)-(\d+)'
|
||
|
regex_intrigue = r'\* (.*)'
|
||
|
|
||
|
# Ouvrir le fichier Org-mode et le fichier CSV
|
||
|
with open(fichier_org, 'r', encoding='utf-8') as fichier_org, open('intrigues.csv', 'w', newline='', encoding='utf-8') as fichier_csv:
|
||
|
csv_writer = csv.writer(fichier_csv)
|
||
|
|
||
|
# Écrire les en-têtes dans le fichier CSV
|
||
|
csv_writer.writerow(['Début', 'Fin', 'Intrigue'])
|
||
|
line_counter=0
|
||
|
# Parcourir chaque ligne du fichier Org-mode
|
||
|
for ligne in fichier_org:
|
||
|
# Initialiser les variables de date et d'intrigue à zéro
|
||
|
debut = fin = intrigue = '0'
|
||
|
|
||
|
# Rechercher les dates de début et de fin
|
||
|
match_date = re.search(regex_date, ligne)
|
||
|
if match_date:
|
||
|
debut = match_date.group(1)
|
||
|
fin = match_date.group(2)
|
||
|
else:
|
||
|
debut = line_counter
|
||
|
fin = line_counter+1
|
||
|
# Rechercher l'intrigue
|
||
|
match_intrigue = re.search(regex_intrigue, ligne)
|
||
|
if match_intrigue:
|
||
|
intrigue = re.sub(regex_date, "" , match_intrigue.group(1) )
|
||
|
|
||
|
# Écrire les informations dans le fichier CSV
|
||
|
csv_writer.writerow([debut, fin, intrigue])
|
||
|
line_counter+=1
|