import argparse import re def upper_capital_prefix_postfix(match,prefix,postfix): return prefix + upper_capital(match) + postfix def upper_capital(match): return match.group(1).capitalize() def upper_capital_dot(match): return upper_capital_prefix_postfix(match, '','.') def upper_capital_dot_interrogation(match): return upper_capital_prefix_postfix(match, '','?') def upper_capital_dot_exclamation(match): return upper_capital_prefix_postfix(match, '','!') def upper_capital_org_title(match): return upper_capital_prefix_postfix(match, '* ','') def upper_capital_tiret(match): return '- ' + upper_capital(match) def normalize_text(content): # Remplacer les doubles ou plus d'espaces par des espaces simples content = re.sub(r'\s+',' ', content) # Remplacer les retours à la ligne consécutifs supérieurs à 2 par au maximum 2 # content = re.sub(r'\n\n\n', '\n\n', content) # Corriger les règles d'espacement avec les deux points # content = re.sub(r'\s+', '. ', content) # Remplacer les eo par des vrais e dans l'o content = re.sub(r'eo', 'œ', content) # Remplacer trois points par le vrai caractère trois points content = re.sub(r'\.\.\.|\.{3}', '…', content) return content def capitalize_text(file_path): with open(file_path, 'r') as file: content = file.read() # Capitaliser les premiers mots des phrases content = re.sub(r'(\w+.*)\.', upper_capital_dot, content) content = re.sub(r'(\w+.*)\?', upper_capital_dot_interrogation, content) content = re.sub(r'(\w+.*)\!', upper_capital_dot_exclamation, content) # Capitaliser les mots dans les titres Org-mode # content = re.sub(r'\*+\[([^\]]+)\]', r'* \1', content) content = re.sub(r'\*+\s(\w+)', upper_capital_org_title, content) # Capitaliser les éléments de liste content = re.sub(r'\-\s*(\w+)', upper_capital_tiret, content) content = normalize_text(content) with open(file_path, 'w') as file: file.write(content) if __name__ == '__main__': parser = argparse.ArgumentParser(description='Capitaliser les premiers mots des phrases dans un fichier texte.') parser.add_argument('file_path', help='Le chemin du fichier à corriger.') args = parser.parse_args() capitalize_text(args.file_path)