filename = raw_input("Please enter the file name: ")
with open(filename) as f:
lines = f.readlines()
for i in xrange(0, len(lines), 20):
print lines[i:i+20]
raw_input("Press Enter for more")
Это считывает весь файл в память, поэтому вы можете не использовать фрагменты, если это огромный файл.Но если это огромный файл, вы вряд ли захотите пройти по нему двадцать строк за раз;)
Основное изменение заключается в том, что мы открываем файл с помощью оператора with
.Это гораздо приятнее, чем использование open
/ close
, и гарантирует, что файл всегда будет закрыт.
в коде, который вы опубликовали, когда вы выполняли break
, вы выходили из своего взгляда.break
выходит из цикла, поэтому вы хотите использовать его только для этой цели.just calling a blocking operation like
raw_input` достаточно, если вам просто нужно приостановить выполнение по какой-то причине (например, ожидание пользователя).
также, continue
совершенно не нужен.В конце тела цикла у него нет выбора, кроме continue
Что вы думаете о строках if q == "": x += 20
?во-первых, это должно быть просто if not q: x += 20
(пустая строка (например, пустые списки / dicts / tuples) оценивается как False
), а во-вторых, это будет пропускать следующие 20 строк.Это требование, которым вы не поделились?