Hallo,
Ich habe eine ASCII, die aus bis zu 300 Zeilen und +-10 Spalten besteht.
Nun meine (Anfänger)Frage:
Wie kann ich einzelne Segmente (Zeile 9 Spalte 5) anwählen und mit denen operieren (z.B. Summe, Mittelwerte, etc.)?
Ich dachte mir erst einzeln Zeilen in Listen umwandeln und dann die einzelnen Listenelemente miteinander verstricken?! Gut/schlecht? Gibt es da was besseres?
Habe jede Menge solcher Output-Dateien, ich muss automatisieren!!
Gruß,
Francis Begbie.
ASCII wie Tabelle behandeln! Wie?
Hi,
würde ich wohl auch so machen, mit den Listen... sind die Daten denn mit nem ; oder so getrennt, sodass du die einfach mit split() trennen kannst?
Ansonsten gibt es auch extra funktionen für csv-files (-> character separated values), aber ich weiss nicht ob es nicht fast einfacher (und übersichtlicher) ist das schnell selbst zu schreiben, kommt wohl auf das Format der Daten an, und was du dann damit machen willst...
Gruss,
Jo
würde ich wohl auch so machen, mit den Listen... sind die Daten denn mit nem ; oder so getrennt, sodass du die einfach mit split() trennen kannst?
Ansonsten gibt es auch extra funktionen für csv-files (-> character separated values), aber ich weiss nicht ob es nicht fast einfacher (und übersichtlicher) ist das schnell selbst zu schreiben, kommt wohl auf das Format der Daten an, und was du dann damit machen willst...
Gruss,
Jo
-
- User
- Beiträge: 3
- Registriert: Dienstag 31. Juli 2007, 13:17
Hallo,
Danke jo_hb, d.h. ich bin auf den richtigen Weg.
Hier ist mein Skript, welches ich bisher programmiert habe:
Über Aufklärung würde ich mich wirklich freuen.
Grüße,
Francis Begbie.
Danke jo_hb, d.h. ich bin auf den richtigen Weg.
Hier ist mein Skript, welches ich bisher programmiert habe:
Code: Alles auswählen
import sys, string, os
def convert_line(line):
return [convert(item)
for convert, item
in zip((float, float, int), line.split(";"))]
def read_table(lines):
return map(convert_line, lines)
def main():
o = open("U:\Projekt1\Output.txt", "w")
lines1 = o.readline()
lines = iter(lines1)
table = read_table(lines)
o.close()
print table[1][5]
main()
Grüße,
Francis Begbie.
Aufklärung worüber? Gibt es ein Problem was Du vergessen hast zu erwähnen? Falls ja könnte das daher rühren, dass Du die Datei zum schreiben öffnest, was dazu führt, dass eine eventuell vorhandene Datei als erstes einmal "geleert" wird.
hallo Francis,
sieht ganz schön kompliziert aus, finde ich. Ich weiss gar nicht ob du soviele functions brauchst oder ob das dadurch nicht ein bisschen unübersichtlich wird. So:
...hast du doch schon eine liste mit all deinen werten, jetzt muss man die nur noch ins richtige Zahlenformat konvertieren - kann man sicher direkt schon in der for-schleife machen, ich weiss jetzt allerdings grad auch nicht wie...
Warum öffnest du das file übrigens mit "w" - willst du auch reinschreiben?
Gruss,
Jo
sieht ganz schön kompliziert aus, finde ich. Ich weiss gar nicht ob du soviele functions brauchst oder ob das dadurch nicht ein bisschen unübersichtlich wird. So:
Code: Alles auswählen
allLines = []
csvFile = open("U:\Projekt1\Output.txt", "r")
for line in csvFile:
allLines.append(line.strip().split(";"))
print allLines
Warum öffnest du das file übrigens mit "w" - willst du auch reinschreiben?
Gruss,
Jo
-
- User
- Beiträge: 3
- Registriert: Dienstag 31. Juli 2007, 13:17
Hallo,
Danke Jo und BlackJack.
Eure Beträge haben weiter geholfen.
Zusätzlich ist endlich das Python Buch da.
@Y0Gi: ASCII ist ne einfache Textfile in 7Bit-Zeichenkette und bei mir in einer Art Matrix mit räumlichen Bezug angelegt.
Gruß,
Francis Begbie.
Danke Jo und BlackJack.
Eure Beträge haben weiter geholfen.
Zusätzlich ist endlich das Python Buch da.
@Y0Gi: ASCII ist ne einfache Textfile in 7Bit-Zeichenkette und bei mir in einer Art Matrix mit räumlichen Bezug angelegt.
Gruß,
Francis Begbie.