import os import shutil import tarfile def extraer_archivos_tar_gz(ruta_origen): """Extrae los archivos _bindenergy.tab de todos los archivos tar.gz en la ruta de origen y los copia en la misma ruta.""" # Obtener la lista de archivos en la ruta de origen archivos = os.listdir(ruta_origen) # Filtrar los archivos que son archivos tar.gz archivos_tar_gz = [archivo for archivo in archivos if archivo.endswith('.tar.gz')] # Iterar sobre los archivos tar.gz for archivo_tar_gz in archivos_tar_gz: ruta_archivo_tar_gz = os.path.join(ruta_origen, archivo_tar_gz) # Crear un directorio temporal para extraer los archivos directorio_temporal = os.path.join(ruta_origen, 'temp') os.makedirs(directorio_temporal, exist_ok=True) # Extraer los archivos _bindenergy.tab del archivo tar.gz with tarfile.open(ruta_archivo_tar_gz, 'r:gz') as tar: for miembro in tar.getmembers(): if miembro.name.endswith('_bindenergy.tab'): tar.extract(miembro, path=directorio_temporal) # Copiar el archivo extraído a la ruta de origen ruta_archivo_destino = os.path.join(ruta_origen, os.path.basename(miembro.name)) shutil.copy(os.path.join(directorio_temporal, miembro.name), ruta_archivo_destino) print(f"Archivo '{miembro.name}' extraído y copiado correctamente.") # Eliminar el directorio temporal después de procesar el archivo tar.gz shutil.rmtree(directorio_temporal) def main(): # Ruta de origen ruta_origen = r"D:\aaa" # Extraer y copiar archivos _bindenergy.tab de archivos tar.gz extraer_archivos_tar_gz(ruta_origen) if __name__ == "__main__": main()