Module (33%)
Section (17%)

Обработка текстовых файлов: продолжение

Если Вы абсолютно уверены, что длина файла безопасна, и Вы можете сразу считать весь файл в память, Вы можете сделать это - функция read(), вызываемая без каких-либо аргументов или с аргументом, который является None, выполнит эту работу за Вас.

Помните - чтение файла длиной в терабайты с использованием этого метода может привести к повреждению вашей ОС.

Не ожидайте чудес - память компьютера не растягивается.

Посмотрите на код в редакторе. Что Вы думаете об этом?

Давайте проанализируем это:

  • откройте файл как ранее;
  • прочтите его содержимое одним вызовом функции read();
  • затем обработайте текст, повторяя его с помощью обычного цикла for и обновляя значение счетчика при каждом повторе цикла.
 

Результат будет точно таким же, как и ранее.



Code

from os import strerror

try:
counter = 0
stream = open('text.txt', "rt")
content = stream.read()
for char in content:
print(char, end='')
counter += 1
stream.close()
print("\n\nCharacters in file:", counter)
except IOError as e:
print("I/O error occurred: ", strerr(e.errno))
{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×