-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path09_BuscarLigaduras.py
48 lines (42 loc) · 1.8 KB
/
09_BuscarLigaduras.py
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
import os
import re
def buscar_ligaduras_en_archivos(directorio):
# Lista de ligaduras comunes como un solo carácter
ligaduras = {
'fi': 'fi',
'fl': 'fl',
'ffi': 'ffi',
'ffl': 'ffl',
'ff': 'ff',
'ſt': 'st',
'st': 'ſt',
'æ': 'ae',
'œ': 'oe',
'IJ': 'IJ',
'ij': 'ij',
'ǽ': 'ae',
'Œ': 'OE'
}
# Expresión regular que busca cualquier carácter de ligadura
patron_ligaduras = re.compile(r'[fiflffifflffſtstæœIJijǽŒ]')
coincidencia_encontrada = False # Variable para rastrear si se encuentra alguna coincidencia
for root, dirs, files in os.walk(directorio):
for file in files:
if file.endswith(".tex"):
ruta_archivo = os.path.join(root, file)
try:
with open(ruta_archivo, 'r', encoding='utf-8') as f:
for num_linea, linea in enumerate(f, 1):
if patron_ligaduras.search(linea):
# Identificar ligaduras específicas
ligaduras_encontradas = [lig for lig in ligaduras if lig in linea]
for lig in ligaduras_encontradas:
print(f"Ligadura '{ligaduras[lig]}' encontrada en: {ruta_archivo}, línea {num_linea}")
coincidencia_encontrada = True # Marca como encontrado
except Exception as e:
print(f"No se pudo leer el archivo {ruta_archivo}: {e}")
if not coincidencia_encontrada:
print("No se encontraron ligaduras.")
if __name__ == "__main__":
directorio_actual = os.getcwd() # Usa el directorio actual
buscar_ligaduras_en_archivos(directorio_actual)