2016-03-20 18 views
0

Eğer belirli bir bilgi hattım varsa ve her satırı indekslemeye çalışıyorum ama üst üste binme şekilleri genelleştirici indeksleri önler (ilk satır 123 3455, sonra ikinci satır 1234567 12'dir) İlk iki sayıyı nasıl kategorize edebilirim aynı isim sahibi?Bir satırı bir sonraki beyaz alana nasıl indeksleyebilirim?

yani:

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

bu sayı çok daha uzundur ikinci hat için çünkü çalışmaz, ama nasıl olacağını ben ilk sayısının ardından beyaz boşluğa numaralar endeksi? Eğer hatlarda bir boşlukla ayrılmış 2 numaralarına sahip olarak

+0

[Python boşluk üzerinde Bölünmüş dize] (http://stackoverflow.com/questions/8113782/split-string-on-whitespace-in-python) –

+0

Eğer çizgiler ayrılmalıyız Olası yinelenen 'line_list ile= line.split() 've' first_number = line_list [0] 'olsun – dnit13

+0

Teşekkür ederim @ dnit13, aradığım şey buydu! – Gideon

cevap

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=' ') bir demet dönecektir. Satırı \n kaldırmak için şerit.

Burada gördüğünüz tuple ataması gibidir: gibi basitleştirilmiş olabilir

(a, b) = (1, 2) 

:

a, b = 1, 2 

Ve (siz yazabilirsiniz ikinci sayı umurumda değil eğer ortak uygulama):

first_number, _ = line.split() 
1

Her zaman bir boşlukla ayrılırlarsa,'yi değiştirebilirsiniz. line.partition(' ')[0]

İlgili konular