Почему файл не читается без функции read(), но при этом когда раскладываешь через цикл, то всё работает?
Почему файл не читается без функции read() в данном примере?
with open('pi_digits.txt') as text_file:
print(text_file.read())
При этом в этом случае функция не требуется и всё работает.
with open('pi_digits.txt') as text_file:
for list_file in text_file:
print(list_file)
Помогите пожалуйста разобраться. Не пойму принципа работы python в данном случае, спасибо.
Пример файла: 3.1415926535 8979323846 2643383279
Ответы (1 шт):
Во-первых, наверное потому что вы забыли что такое отступы и зачем они используются в Python
with open('my_first_file.txt') as text_file:
print(text_file.read())
Все работает. Результат:
Наша Таня громко плачет,
уронила в речку мячик,
тише, Танечка, не плачь,
не утонет в речке мяч
Во-вторых, а как без функции read - или функций/методов ее заменяющих - вы собрались читать? На всякий случай - text_file - это не ваш файл, а специальный объект, который дает вам возможность работы с файлом. Вот вы и используете такие методы - в первом случае read(), во втором - это делает за вас интерпретатор, который умеет правильно интерпретировать работу с итерируемым объектом в конструкции in text_file