Script de Python que elimina tabuladores y cambia la cabecera de ficheros "_bindenergy.tab".
La ejecución del macro "md_analyzebindenergy.mcr" de YASARA genera ficheros de texto con extensión *.tab que separan el contenido de sus columnas por espacios en blanco. Véase un ejemplo justo debajo.

Con el siguiente script de Python, para ejecutar en Windows, eliminamos "_" y sustituimos los espacios en blanco (1 o más) por tabuladores. Los ficheros de salida tienen el mismo nombre que los de entrada. Los nuevos ficheros son fáciles de copiar y pegar sobre una hoja de cálculo.
import os
import re
# Ruta donde buscar los archivos *.tab
ruta = r"D:\zzz"
# Cadena original y nueva para la primera sustitución
cadena_original = " ____Time[ps]__BindEnergy= EpotRecept+ EsolvRecept+ EpotLigand+ EsolvLigand- EpotComplex- EsolvComplex ______VINALS [kcal/mol]"
cadena_nueva = " Time[ps] BindEnergy= EpotRecept+ EsolvRecept+ EpotLigand+ EsolvLigand- EpotComplex- EsolvComplex VINALS"
# Procesa todos los archivos .tab en la ruta
for nombre_archivo in os.listdir(ruta):
if nombre_archivo.endswith(".tab"):
ruta_completa = os.path.join(ruta, nombre_archivo)
# Lee el contenido del archivo
with open(ruta_completa, 'r', encoding='utf-8') as archivo:
contenido = archivo.read()
# Primera sustitución: cambia la cadena específica
contenido = contenido.replace(cadena_original, cadena_nueva)
# Segunda sustitución: reemplaza múltiples espacios por un tabulador
# Línea por línea para evitar tabuladores donde no se necesitan (como en líneas vacías)
lineas_procesadas = []
for linea in contenido.splitlines():
# Quita espacios al inicio y al final, luego reemplaza espacios múltiples internos
linea_tabulada = re.sub(r' {1,}', '\t', linea.strip())
lineas_procesadas.append(linea_tabulada)
# Junta todo el contenido modificado
nuevo_contenido = '\n'.join(lineas_procesadas)
# Guarda el nuevo contenido en el mismo archivo
with open(ruta_completa, 'w', encoding='utf-8') as archivo:
archivo.write(nuevo_contenido)
print("Proceso completado: cadena sustituida y columnas tabuladas.")
