Как прочитать определенный диапазон строк во внешнем файле в Python?

1

Допустим, у вас есть файл python с 50 строками кода, и вы хотите прочитать определенные строки диапазона в списке. Если вы хотите прочитать ВСЕ строки в файле, вы можете просто использовать код из этого ответа:

with open('yourfile.py') as f:
    content = f.readlines()

print(content)

Но что, если вы хотите прочитать определенный диапазон строк, например, чтение строки 23-27?

Я пробовал это, но он не работает:

f.readlines(23:27)
Теги:
python-3.x

3 ответа

4
Лучший ответ

Вы были близки. readlines возвращает список, и вы можете разрезать его, но это недействительный синтаксис, чтобы попытаться передать срез непосредственно в вызове функции.

f.readlines()[23:27]

Если файл очень большой, избегайте издержек памяти при чтении всего файла:

start, stop = 23, 27
for i in range(start):
    next(f)
content = []
for i in range(stop-start):
    content.append(next(f))
  • 0
    По моему мнению, когда кто-то говорит: «Я хочу строки с 23 по 27», последнее включается. Таким образом, остановка должна быть той точкой остановки, которую вы на самом деле хотите ... +1.
0

Попробуй это:

sublines = content[23:27]
0

Если в вашем файле много и много строк, я считаю, что вам следует использовать f.readline() (без s) 27 раз и сохранять свои строки только в том месте, где вы хотите. :)

Else, другое решение - это то, что я бы тоже сделал (значение: f.readlines()[23:28]. 28, потому что, насколько я помню, внешний диапазон исключен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню