Обведите данные один раз, чтобы определить максимальную ширину каждого столбца:
with open('quest_load.txt', 'r') as f:
for i, line in enumerate(f):
if i == 0:
max_widths = [len(col) for col in line.split('|')]
continue
max_widths = [
max(len(col), curr_max)
for col, curr_max in zip(line.split('|'), max_widths)
]
Затем повторите цикл, чтобы напечатать столбцы, форматируя каждый столбец в соответствии с максимальной шириной:
with open('quest_load.txt', 'r') as f:
for line in f:
content = line.split('|')
formatted = [
f'{substr: <{width}}'
for substr, width in zip(content, max_widths)
]
print('\t'.join(formatted), end='')
Вывод:
capital What is the capital of Egypt? Cairo 3
pi What is pi to two digits? 3.14 3
dozen How many eggs in a dozen? 12 1
president Who was the first president? Washington 1