38 lines
1.7 KiB
Python
38 lines
1.7 KiB
Python
# corrige un fichier livre.org afin de supprimer les erreurs de typographie courantes:
|
|
# phrases sans majuscules
|
|
# plus de deux sauts de ligne consécutifs
|
|
# espaces manquants autour de certaines ponctuations.
|
|
|
|
import re
|
|
|
|
# Ouvrir le fichier livre.org en mode lecture
|
|
with open('livre.org', 'r') as f:
|
|
contenu = f.read()
|
|
|
|
# Corriger les phrases sans majuscules
|
|
contenu_corrige = re.sub(r"^([a-z])", lambda m: m.group(1).upper(), contenu, flags=re.MULTILINE)
|
|
nb_maj = sum(1 for m in re.finditer(r"^([a-z])", contenu)) - sum(1 for m in re.finditer(r"^([a-z])", contenu_corrige))
|
|
if nb_maj > 0:
|
|
print(f" Ajout de majuscules aux débuts de phrases : {nb_maj} modification(s)")
|
|
|
|
# Corriger les sauts de ligne consécutifs
|
|
contenu_corrige = re.sub(r'\n{3,}', '\n\n', contenu_corrige)
|
|
nb_sauts = len(re.findall(r'\n{3,}', contenu)) - len(re.findall(r'\n{3,}', contenu_corrige))
|
|
if nb_sauts > 0:
|
|
print(f" Suppression des sauts de ligne consécutifs : {nb_sauts} modification(s)")
|
|
|
|
# Corriger les espaces manquants autour de certaines ponctuations
|
|
contenu_corrige = re.sub(r"([.,;:!?])( )?", r"\1 ", contenu_corrige)
|
|
contenu_corrige = re.sub(r"( )([.,;:!?])", r" \2", contenu_corrige)
|
|
nb_espaces = len(re.findall(r"([.,;:!?])( )?", contenu)) - len(re.findall(r"([.,;:!?])( )?", contenu_corrige)) + len(re.findall(r"( )([.,;:!?])", contenu)) - len(re.findall(r"( )([.,;:!?])", contenu_corrige))
|
|
if nb_espaces > 0:
|
|
print(f" Ajout d'espaces autour de certaines ponctuations : {nb_espaces} modification(s)")
|
|
|
|
# Sauvegarder le fichier livre.org corrigé
|
|
with open('livre.org', 'w') as f:
|
|
f.write(contenu_corrige)
|
|
|
|
# Faire un rapport des modifications apportées
|
|
if nb_maj == 0 and nb_sauts == 0 and nb_espaces == 0:
|
|
print("🎉 Pas de modifications à apporter !")
|