2016-03-20 8 views
0

Also wenn ich eine bestimmte Informationszeile habe und ich versuche, jede Zeile zu indizieren, aber die Art, wie sie sich überlappen, verhindert verallgemeinernde Indizes (erste Zeile 123 3455 dann die zweite Zeile 1234567 12) wie kann ich die ersten beiden Zahlen mit kategorisieren der gleiche Name Inhaber?Wie kann ich eine Zeile zum nächsten verfügbaren Leerzeichen indizieren?

dh:

fo = open file 
for line in fo: 
    first_number = line[0:3] 

dies nicht, weil nicht funktioniert für die zweite Zeile der Zahl viel länger ist, aber wie würde ich Index der Zahlen auf den weißen Raum nach der ersten Nummer?

+0

Mögliche Duplikat [Split String auf Leerzeichen in Python] (http://stackoverflow.com/questions/8113782/split-string-on-whitespace-in-python) –

+0

Sie die Zeilen aufgeteilt sollte 'line_list = line.split() 'und get' first_number = line_list [0] ' – dnit13

+0

Danke @ dnit13 das war genau das was ich gesucht habe! – Gideon

Antwort

1
with open(file, 'r') as fo: 
    for line in fo: 
     first_number, second_number = line.strip().split() 
     # do something else with these 2 variables 
     ... 

str.split(separator=' ') wird ein Tupel zurück, wie Sie von einem Platz auf den Linien 2 getrennt Zahlen haben. Ich streife die Linie, um die \n zu entfernen.

Was Sie hier sehen, ist wie ein Tupel Zuordnung:

(a, b) = (1, 2) 

, die als solche vereinfacht werden kann:

a, b = 1, 2 

Und wenn Sie kümmern sich nicht um die zweite Nummer, die Sie schreiben können (gängige Praxis):

first_number, _ = line.split() 
1

Wenn sie immer durch ein Leerzeichen getrennt sind, können Sieersetzenmit line.partition(' ')[0]

Verwandte Themen