Что содержит файловый объект? - PullRequest
0 голосов
/ 19 июня 2020

См. Приведенный ниже код:

import os

file = open("C:/Users/AAYUSH/Desktop/file.txt", 'r' )

print(file)

for i in file:
    print(i,end="")

Если я выполню этот код, я получу результат ниже:

<_io.TextIOWrapper name='C:/Users/AAYUSH/Desktop/file.txt' mode='r' encoding='cp1252'>
This is first line!!!
This is second line!!!

Мой вопрос: если я выполню print(file), я получу словарь файла, и когда я пишу с помощью for loop, я получаю внутренние данные.

Тогда что на самом деле содержит объект файла?

1 Ответ

3 голосов
/ 19 июня 2020
print(file)

Вызванный метод tke __str__ объекта file, который возвращает строку, которая сообщает вам о типе объекта, т.е. TextIOWrapper и некоторых атрибутах name, r et c. Содержимого файла здесь нет, потому что файл еще не прочитан.

for i in file

Вызвал метод __iter__ файлового объекта и на самом деле выполняет чтение файла (по одной строке за раз). Объект file содержит указатель на позицию в файле - он используется для чтения из него.

...