Чтение Python в файле и преобразование его в переменные с пробелами

#python #parsing

#python #синтаксический анализ

Вопрос:

У меня есть текстовый файл (Students.txt ) мне нужно прочитать в python и разобрать их на переменные first_name, middle_name, last_name, student_id . Первые несколько строк текстового файла выглядят так, как показано:

 Last Name  Midle Name  First Name   Student ID  
----------------------------------------------
Howard     Joe          Moe         howar1m     
Howard                  Curly       howar1c     
Fine       Ken          Lary        fine1l   
  

Код, который я пробовал

 f = open("Students.txt")
for line in f:
    fields = line.strip().split()
    last_name = fields[0]
  

Работает только для фамилии, потому что, если я пытаюсь fields[1] ввести второе имя, я получаю ошибку «индекс списка вне диапазона». Я пробовал использовать if not line.startswith('Middle Name'): continue , но он не распознает столбец.
У кого-нибудь есть лучший подход к тому, как разобрать их в соответствующие переменные?

Комментарии:

1. В тексте, который вы показываете здесь, написано «Среднее имя» вместо «Среднее имя» (обратите внимание на пропущенную букву «d»). Если в вашем текстовом файле также указано «Среднее имя», это может быть причиной if сбоя вашего оператора.

Ответ №1:

Вероятно, вам следует использовать readlines() , а затем перебирать каждую строку, пропуская первые 2 строки. Следовательно, код будет выглядеть так

 f = open("Student.txt")
lines = f.readlines()
print lines
for line in lines[2:]:
    fields = line.split()
    last_name = fields[0]
    middle_name = fields[1]