for line in f:

Использует итерацию по файлу построчно, без загрузки всего файла в память. Самый быстрый и экономичный способ по памяти, особенно для больших файлов.

for line in f.read****()::

Читает весь файл целиком в память как одну строку, а затем проходит по символам, а не по строкам. Это значительно замедляет работу и требует больше памяти.

for line in f.readlines()::

Читает весь файл в память как список строк. Это быстрее, чем f.read(), но всё ещё требует загрузки всего файла в память.

верно рассуждаю?