Conversión de formato mixto .DAT a .CSV (o cualquier otra cosa)

Tengo una gran colección de archivos DAT que necesitan ser convertidos (eventualmente a un tipo de archivo único). Los DAT tienen una cantidad mixta de espacios en blanco entre los campos, y los encabezados de las columnas están en diferentes líneas. ¿Algún consejo?

                    ALT_RAD
                                               ALT_RAD2
                 DIRECT        D_GLOBAL        U_GLOBAL          Zenith
Year Mn Dy Hr Mi        DIFFUSE2            D_IR            U_IR
2004  9  1  0  1    1.04   79.40   78.67  303.58   61.06  310.95  85.142
2004  9  1  0  2    0.71   74.36   73.91  303.80   57.82  310.92  85.171
2004  9  1  0  3    0.67   71.80   71.64  304.25   56.84  310.98  85.199
2004  9  1  0  4    0.75   74.35   74.83  304.21   59.68  310.89  85.227

Tengo un script básico:

import sys
with open(sys.argv[1], r) as input_file:
    newLines = []
    for line in input_file:
            newLines.append(newLine)

Lo que ciertamente cambiaré para tener en cuenta el espacio en blanco mixto, pero no sé cómo trabajar con los encabezados de columna torpes.

Eventualmente quiero que mis encabezados sean:

Year Month Day Hour Minute Direct Diffuse2 D_Global D_IR U_Global U_IR Zenith

Respuestas a la pregunta(3)

Su respuesta a la pregunta