Теория:

Метод read(<размер>)
 
Метод read(<размер>) считывает из файла определённое количество символов, переданное в качестве аргумента. При этом Python помнит, где остановилось считывание, и при следующем обращении к методу считывание будет продолжаться с места остановки.

Если использовать этот метод без аргументов, то будет считан весь файл.
 
Содержание файла \(input.txt\):

\(1\) \(2\) \(3\) \(4\)
\(5\) \(6\) \(7\) \(8\)
 
\(f=open('input.txt','r')\)
\(c=open('output.txt','w')\)
\(a=f.read()\)
\(print(a, type(a))\)
\(f.closed\)
\(c.closed\)
 
Результат

\(1\) \(2\) \(3\) \(4\)
\(5\) \(6\) \(7\) \(8\) <class 'str'>
  
Метод readline()

Метод readline() без параметра читает всю строку, наличие параметра указывает функции максимальное число символов строки, которое будет прочитано.

\(f=open('input.txt','r')\)
\(c=open('output.txt','w')\)
\(a=f.readline()\)
\(print(a, type(a))\)
\(f.closed\)
\(c.closed\)
 
Результат

\(1\) \(2\) \(3\) \(4\)
 <class 'str'>
  
Метод readlines()

Метод readlines() читает все строки в виде списка.

\(f=open('input.txt','r')\)
\(c=open('output.txt','w')\)
\(a=f.readlines()\)
\(print(a,type(a))\)
\(f.closed\)
\(c.closed\)
 
Результат

\(['1 2 3 4\)\n\(', '5 6 7 8']\) <class 'list'>
 
Обрати внимание здесь на считанный служебный символ переноса строки \n.