Вы должны измерить, чтобы проверить, но sys.stdin
и sys.stdout
являются io.TextIOWrapper
объектами, которые, как минимум, включают дополнительную функциональность декодирования входящих данных в Unicode и кодирования исходящих данных в любая кодировка настроена для выходного потока.
На этом основании должно быть так, что os.read()/os.write()
будет быстрее, поскольку это функции более низкого уровня, которые работают только с байтами, независимо от кодировки, если вы имеете дело с байтово-ориентированными данными, например, текст ASCII, двоичный файл и т. д.
Если вы профилируете функции os
, вам также следует учитывать время для отдельного кодирования и декодирования данных, если этого требует ваше приложение. Вы можете обнаружить, что выполнение кодирования и ввода-вывода в два отдельных шага будет медленнее, чем методы sys
.
Некоторые другие отличия в Python 3 заключаются в том, что функции os
принимают / возвращают bytes
объекты, тогда как объекты sys
имеют дело с str
объектами.