Guten Morgen,
ich habe eine .txt datei welche sinnesgemäß eine solche Struktur aufweist: (Knapp 400 Zeilen)
Datum Uhrzeit Name Baureihenabfolge
01.0.2016 15:30 Max Meyer (Golf7/Golf6)(AudiTT)(Mercedes C Klasse)
nun interessiert mich nur der letzte Teil (Baureihenabfolge).
Der Algorithmus soll nun eine List erstellen mit der Baureihenabfolge, also so:
list 1 = [Golf7/Golf6, Audi TT, Mercedes C Klasse].
Genau das gleiche soll er auch für die nächsten 400 Zeilen machen, dementsprechend also 400 Listen erzeugen.
Danke für die Unterstützung
PS: die einzelnen Daten ( Datum, Uhrzeit, Name etc. ) sind jeweils durch ein Tab getrennt.
liste schneiden und aus dieser eine weitere liste erstellen?
Untested:
[Codebox=python file=Unbenannt.txt]with open('data.txt') as f:
print [line.rsplit(None, 1)[1].replace(')', '').split('(') for line in f][/Codebox]
EDIT: Codebox kaputt?
with open('data.txt') as f:
....print [line.rsplit(None, 1)[1].replace(')', '').split('(') for line in f]
[Codebox=python file=Unbenannt.txt]with open('data.txt') as f:
print [line.rsplit(None, 1)[1].replace(')', '').split('(') for line in f][/Codebox]
EDIT: Codebox kaputt?
with open('data.txt') as f:
....print [line.rsplit(None, 1)[1].replace(')', '').split('(') for line in f]
the more they change the more they stay the same
An den öffnenden Klammern splitten und den am weitesten links stehenden Split ignorieren sowie vorab alle schließenden Klammern entfernen.
Sieht dann so aus:
Sieht dann so aus:
Code: Alles auswählen
s = '01.0.2016 15:30 Max Meyer (Golf7/Golf6)(AudiTT)(Mercedes C Klasse)'
s.replace(')', '').split('(')[1:]
Wenn du ganz sicher sein willst, dann nutze den `csv.reader` mit "\t" als Trenner und wende dann das Splitten der Klammern auf die letzte Spalte an.HansWurst1 hat geschrieben:PS: die einzelnen Daten ( Datum, Uhrzeit, Name etc. ) sind jeweils durch ein Tab getrennt.
Ungetestet:
Code: Alles auswählen
import csv
import itertools
def get_model_lists(source_filename):
with open(source_filename) as infile:
for row in csv.reader(infile, delimiter='\t'):
yield row[-1].replace(')', '').split('(')[1:]
if __name__ == '__main__':
model_lists = get_model_lists(dein_dateiname)
chunk = list(itertools.islice(model_lists, 10))
print(chunk)