#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]