Texte de l'Analyse du Fichier avec Python

Je suis en train d'analyser une série de fichiers texte et de les enregistrer dans des fichiers CSV à l'aide de Python (2.7.3). Tous les fichiers texte ont un 4 ligne d'en-tête qui doit être extirpé. Les lignes de données ont différents délimiteurs y compris " (citation), - (dash): colonne, et le vide de l'espace. J'ai trouvé que c'était une douleur de code en C++ avec tous ces différents délimiteurs, j'ai donc décidé de l'essayer en Python audience, il est relativement plus facile à faire par rapport au C/C++.

J'ai écrit un bout de code pour tester une seule ligne de données et cela fonctionne, cependant, je n'arrivais pas à le faire fonctionner pour le fichier réel. Pour l'analyse d'une seule ligne, j'ai été à l'aide de l'objet de texte et "remplacer" la méthode. Il semble que mon actuel de mise en œuvre de lit le fichier texte sous forme de liste, et il n'y a pas de remplacement de la méthode pour les objets de la liste.

Étant un novice en Python, je me suis coincé à ce point. Toute entrée serait appréciée!

Merci!

# 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()
Vous devez joindre une copie du fichier dont vous avez besoin pour analyser et les résultats attendus, de cette façon il sera plus facile de vous aider.

OriginalL'auteur marillion | 2012-08-13