Почему не получается построчно прочитать файл?

Нужно построчно прочитать файл и вот собственно код(взял с учебной литературы)
file = open('/home/blizz/Desktop/test.txt', 'r')
while True:
    char = file.read(1)
    if not char: break
    print(char)

for char in: open('test.txt').read()
    print(char)


С while True все проходит хорошо, но при for char in open('test.txt').read() выдает синтаксическую ошибку. Подскажите где ошибка?
P.S. как я понял код работает и без последней строки с for, открывает файл и построчно читает его, тогда зачем нужна эта строка for char in open('test.txt').read()?
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
DDDsa
@DDDsa
Во-первых, после in не нужно двоеточие.
Во-вторых, в коде вы оба раза читаете не построчно, а посимвольно. read() возвращает строку со всем содержимым файла целиком. Вам нужен метод readlines(), он вернёт список строк файла.

Но в python есть способ прочитать файл построчно, не загоняя его в память целиком, просто запустите цикл по открытому файлу for line in file.

А лучше всего вот так:

with open('test.txt', 'r') as f:
     for l in f:
             print(l)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы