Próbuję przeanalizować szereg plików tekstowych i zapisać je jako pliki CSV przy użyciu Python (2.7.3). Wszystkie pliki tekstowe mają 4-wierszowy nagłówek, który musi zostać usunięty. Linie danych mają różne ograniczniki, w tym "(quote), - (dash),: kolumna i puste miejsce. Zauważyłem, że jest to trudne, aby zakodować go w C++ z wszystkimi różnymi ogranicznikami, więc postanowiłem wypróbować to w Pythonie, słysząc to. jest stosunkowo łatwiejsze w porównaniu do C/C++Pliku pliku tekstowego z Python
Napisałem kawałek kodu, aby przetestować go dla pojedynczego wiersza danych i działa, ale nie udało mi się zrobić go dla rzeczywistego pliku. Wygląda na to, że moja obecna implementacja odczytuje plik tekstowy jako listę i nie ma metody zamiany dla obiektu listy:
Będąc nowicjuszem w Pythonie Utknąłem w tym momencie, każdy sygnał wejściowy byłby doceniany!
Dzięki!
# 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()
Powinieneś załączyć kopię pliku, który chcesz przeanalizować i oczekiwany wynik, w ten sposób łatwiej ci będzie pomóc. –