Análisis de archivos de texto con Python

Estoy tratando de analizar una serie de archivos de texto y guardarlos como archivos CSV utilizando Python (2.7.3). Todos los archivos de texto tienen un encabezado de 4 líneas que debe eliminarse. Las líneas de datos tienen varios delimitadores que incluyen "(quote), - (dash),: column, y espacios en blanco. Me costó mucho codificarlo en C ++ con todos estos delimitadores diferentes, así que decidí probarlo en Python al escucharlo Es relativamente más fácil de hacer en comparación con C / C ++.

Escribí un fragmento de código para probarlo para una sola línea de datos y funciona, sin embargo, no pude lograr que funcionara para el archivo real. Para analizar una sola línea estaba usando el objeto de texto y el método "reemplazar". Parece que mi implementación actual lee el archivo de texto como una lista, y no hay un método de reemplazo para el objeto de la lista.

Siendo un novato en Python, me quedé atascado en este punto. Cualquier entrada sería apreciada!

¡Gracias!

# function for parsing the data
def data_parser(text, dic):
for i, j in dic.iteritems():
    text = text.replace(i,j)
return text

# open input/output files

inputfile = open('test.dat')
outputfile = open('test.csv', 'w')

my_text = inputfile.readlines()[4:] #reads to whole text file, skipping first 4 lines


# sample text string, just for demonstration to let you know how the data looks like
# my_text = '"2012-06-23 03:09:13.23",4323584,-1.911224,-0.4657288,-0.1166382,-0.24823,0.256485,"NAN",-0.3489428,-0.130449,-0.2440527,-0.2942413,0.04944348,0.4337797,-1.105218,-1.201882,-0.5962594,-0.586636'

# dictionary definition 0-, 1- etc. are there to parse the date block delimited with dashes, and make sure the negative numbers are not effected
reps = {'"NAN"':'NAN', '"':'', '0-':'0,','1-':'1,','2-':'2,','3-':'3,','4-':'4,','5-':'5,','6-':'6,','7-':'7,','8-':'8,','9-':'9,', ' ':',', ':':',' }

txt = data_parser(my_text, reps)
outputfile.writelines(txt)

inputfile.close()
outputfile.close()

Respuestas a la pregunta(3)

Su respuesta a la pregunta