EOF после чтения файла? - PullRequest
       5

EOF после чтения файла?

0 голосов
/ 17 марта 2012

Я написал довольно простой код, но не могу понять одну вещь. Код выглядит так

name = open("test.txt")

def CountLines(name):
    return len(name.readlines())

def CountChars(name):
    return len(name.read())


print(CountLines(name))
print(CountChars(name))

А теперь, скажем, «test.txt» содержит 4 строки текста (line1, line2, line3, line4). После запуска этого кода я получу вывод:

4
0

Первый из них в порядке, но почему второй - 0? Потому что ранее функция установлена ​​в EOF? И если так, почему он не читает файл с самого начала? Есть ли способ перезагрузить файл?

1 Ответ

2 голосов
/ 17 марта 2012

Да, второе - 0, потому что вы уже прочитали весь файл, поэтому в CountChars больше нечего читать.

Вам нужно поместить туда name.seek(0), чтобы вернуться к началу файла, прежде чем вы вызовете CountChars. Проверьте документацию по объекту файла .

...