Недавно я работал над проблемой, которая требовала, чтобы я прочитал много строк чисел (около 500 000).
Вначале я обнаружил, что использование input () было слишком медленным. Использование stdin.readline () было намного лучше. Однако, это все еще не было достаточно быстро. Я обнаружил, что использование следующего кода:
import io, os
input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline
и использование input () таким образом улучшило время выполнения. Тем не менее, я на самом деле не понимаю, как работает этот код. Чтение документации для os.read, 0 в os.read (0, os.fstat (0) .st_size) описывает файл, из которого мы читаем. Какой файл 0 описывает? Кроме того, fstat описывает состояние файла, из которого мы читаем, но очевидно, что ввод означает максимальное количество байтов, которые мы читаем?
Код работает, но я хочу понять, что он делает и почему он быстрее. Любая помощь приветствуется.