Не используйте метод read()
, поскольку он считывает весь файл в строку. Вы должны использовать функцию os.stat()
, чтобы получить метаданные файла, которые возвращают структуру статистики с членом st_size
. Это размер в байтах файла. Вам не нужно сначала читать все это.
Для отправки, также читайте и записывайте кусками (скажем, 16 КБ), в цикле.