Python читает куски текста

Я сталкиваюсь с некоторыми проблемами, пытаясь правильно прочитать файл.

У меня есть только код, чтобы немного показать, к чему я пытаюсь стремиться. Но я хочу прочитать каждый фрагмент данных (четыре строки) и вставить каждый из этих фрагментов в массив. Мне также нужно отделить «город», «штат» и «почтовый индекс» друг от друга.

Я понимаю, что я должен читать файл, для каждого фрагмента, который я читал, до пустой строки, внутри которого я бы проверил, является ли это третьей строкой, и если да, то разобрать каждую часть на свой собственный элемент и сделать все это до конца. Однако у меня проблемы с кодированием Python. Я не слишком знаком с Python.

Мои данные:

Name
address
city, state zip
phone number
//empty line
Name
address
....

Мой код:

with open('tester_everything.txt') as f:                                                                                                                  
mylist = []                                                                                                                                             
i=0                                                                                                                                                     
for lines in f:                                                                                                                                         
  other_list = []        
  if lines == '\n':
    mylist.append(other_list)
    other_list = []

  other_list.insert(i, lines)                                                                                                                    
  i = i+1                                                                                                                                               
print mylist                                                                                                                                            
f.close() 

Это создает все пустые элементы внутри mylist.


person tholsapp    schedule 05.11.2015    source источник
comment
Вы other_list очистили перед сохранением. Удалите первую other_list = [] после for и перепишите ее после with.   -  person Kamejoin    schedule 05.11.2015


Ответы (1)


person    schedule
comment
Спасибо, я не могу поверить, что забыл об операторе else теперь, когда я его вижу. Если бы я хотел затем проанализировать эту третью строку данных, я бы просто добавил еще один оператор if/else в оператор else? - person tholsapp; 05.11.2015
comment
Да. Вы можете установить счетчик, например count = 0, перед for, сбросить его до нуля if lines == '\n' и добавить 1 в противном случае. Затем вы можете добавить if count == 2; (третья строка) и завершить свой код. - person Kamejoin; 05.11.2015