2015-09-26 6 views
1

У меня есть текстовый файл, который выглядит как этотPython текстовый файл облицовку двоеточие

firstname:lastname:123456789 
somename:somelastname:12312456456 
... 

Я хочу поставить каждое имя, фамилия и идентификатор в его собственной переменной.

Вот как я это сделал.

with open("somefile.txt", 'r') as a: 
    phonebook = a.readlines() 

l = 0 
while (len(phonebook) < l+1): 
    firstname = 
    lastname = 
    number = 

    l++ 

И застрял на отделке.

ответ

2

Просто сохраните данные в списке, подсписку для каждой строки, разделенную на имя, фамилию и идентификатор фирата.

with open("somefile.txt", 'r') as f: 
    data = [line.strip().split(":") for line in f] 

Вы также можете использовать Dict, но не было бы никакого реального преимущества, если вы не хотели сделать Lookups от имени, но даже в этом случае имена должны быть уникальными, если вы просто хотите использовать каждый фрагмент данных в и не хранить все, а затем использовать в качестве итерации:

with open("somefile.txt", 'r') as f: 
    for line in f: 
     fn, ln , _id = line.strip().split(":") 
+0

Отлично! : D Спасибо! – ChrisK

+0

Нет, вы weclome. –

1
with open("somefile.txt", 'r') as a: 
    for line in a: 
     firstname, lastname, number = line.split(":") 
     number = int(number) 

Там нет необходимости хранить в телефонной книге в виде списка в памяти с .readlines(). Это было бы проблемой, если файл был большим, так как вы использовали бы много памяти. Вы можете просто перебирать его прямо по строкам. Извлечение переменных очень легко благодаря методу str.split и распаковке кортежа, вы можете посмотреть их.

Смежные вопросы