1.- Быстрый ответ
Вместо установки разных независимых переменных вы можете сделать:
mydict = {}
for idx, item in enumerate(reader):
mydict['var%i' %idx] = item
тогда вы называете свою переменную как:
mydict['var0']
Или еще короче в py3k:
mydict = {'var%i' %idx : item for idx, item in enumerate(reader)}
Но в этом смысле нет особого смысла
Как сказал комментатор, это ничем не отличается от прямого:
mylist = list(reader)
, а затем
mylist[0] # instead of 'var0'
и этот вариант намного лучше.
Стратегия словаря лучше всего подходит, когда вы извлекаете ключ словаря из той же самой строки читателя. Например, если бы это было в pos pos 0,:
mydict = {item[0] : item for item in reader}
2.- Правильный ответ
Но если вам нужно просто проверить формат первой строки (возможно, чтобы рассчитать пространство, необходимое для печати), метод может быть следующим:
line = reader.next()
like_this = check_how_is_my(line)
if like_this == 'something_long':
spaces = 23
else:
spaces = 0
while True:
try:
print_with_spaces(line, spaces)
reader.next()
except StopIteration:
break