up export and find characters aliases

This commit is contained in:
Tykayn 2024-10-15 23:53:54 +02:00 committed by tykayn
parent addf0ca546
commit c6c85f4737
3 changed files with 39 additions and 20 deletions

View file

@ -1,7 +1,8 @@
###
# prend le fichier personnages.org, détermine les noms des personnages selon les entêtes orgmode, et va ensuite lire le fichier livre.org et parcourir ses entêtes qui sont les chapitres du livre.
# générer un fichier csv qui listera les chapitres et les personnages en colonnes, pour compter 1 à chaque chapitre lorsque le nom du personnage est retrouvé dedans
# les personnages que l'on recherche dans le livre ne sont pas mentionnés dans la ligne d'entête; mais dans les lignes entre deux entêtes, dans les corps de texte
###
import csv
import re
import argparse
@ -16,7 +17,7 @@ args = parser.parse_args()
fichier_livre = f"{args.dossier}/livre.org"
# Remplacer par les chemins vers les fichiers Org-mode
fichier_personnages = f"{args.dossier}personnages.org"
fichier_personnages = f"{args.dossier}/personnages.org"
# Expressions régulières pour extraire les noms des personnages, les alias et les titres des chapitres
regex_personnage = r"\*\* (.*)"
@ -37,6 +38,7 @@ def extract_character_info(character_line):
match_alias = re.search(regex_alias, character_line)
if match_alias:
aliases = [alias.strip() for alias in match_alias.group(1).split(alias_separator)]
print("aliases", aliases)
return character, aliases
@ -83,7 +85,8 @@ with open(fichier_livre, 'r', encoding='utf-8') as livre, open(f"{args.dossier}/
for personnage, aliases in personnages.items():
if personnage.lower() in ligne.lower() or any(alias.lower() in ligne.lower() for alias in aliases):
occurrences_chapitre[personnage] += 1
print(chapitre,' - ',personnage,' : ', ligne)
# print(personnage, ':', alias, ' : ', ligne)
# print(chapitre,' - ',personnage,' : ', ligne)
# Ajouter les occurrences du chapitre au dictionnaire global
occurrences_personnages[chapitre] = occurrences_chapitre