2017-04-01 16 views
0

Was ist der effizienteste Weg, nur das erste Wort jeder Zeile in einer großen Textdatei zu lesen? Sollte ich split verwenden? Gibt es einen effizienteren Weg? Kann ich nur ein Wort lesen und die Zeile verwerfen und zur nächsten Zeile wechseln? Im Moment habe ich das bin mit:Wie können Sie nur das erste Wort jeder Zeile der Datei mit Python lesen?

for line in f: 
    dct[line.split(None, 1)[0]] = dct.get(line.split(None, 1)[0], 0) + 1 
+0

Hierher zu kommen, nehmen wir an, Sie haben eine Art von Anstrengungen unternommen, Ihr eigenes Problem zu lösen, wenn Sie getan haben - zeigen Sie uns bitte Ihr Code, wenn nicht, beginnen Sie mit dem Versuch, eine spezifischere Frage zu stellen. Viel Glück! – alfasin

+0

Was hast du probiert? und wan fügst du eine Übersicht deiner Eingabedatei hinzu? –

Antwort

0

Um festzustellen, was eine „Linie“ ist, müssen Sie lesen, bis Sie eine neue Zeile finden. Sie haben richtig erkannt, dass split() der richtige Weg ist, wenn Sie nur das erste Wort verwenden möchten.

0

Versuchen:

with open('file.txt','r') as f: 
    for line in f: 
     print(line.split(' ')[0]) 

Wo file.txt die Datei, die Sie lesen möchten, ist. Sie können auch verwenden:

f = open('file.txt', 'r') 
for line in f: 
     print(line.split(' ')[0]) 
  • f.readline() gibt die Linie
  • .split(' ') mit jedem Wort eine Liste erstellt als ein Element
  • [0] das 0-te Element, das

Putting wählt, wie ich setzen Es maximiert die Effizienz, indem es keine Zeit verliert, Variablen Variablen zuzuweisen. Obwohl es nicht zu viel ist.

+0

f.readline(). Split ('') [0] sollte line.split ('') [0] sein. Da bist du schon in einer for-Schleife – repzero

+0

Danke. Es ist wahr, ich weiß nicht, was ich zu tun versuchte. –

3

Um die Effizienz Verwendung

line.split(" ",1)[0] 

Split auf dem ersten Auftreten zu maximieren spart somit Zeit

Verwandte Themen