Python sys.stdout.buffer.write () добавляет дополнительный 0x0d в Linux - PullRequest
0 голосов
/ 18 декабря 2018

Рассмотрим следующий код:

docker run -it --rm python:3.7.1-alpine3.8 \
    python -c "import sys; sys.stdout.buffer.write( b'\x0a' )" | hexdump

Который печатает:

0000000 0d 0a                                          
0000002

Поскольку sys.stdout.buffer - это двоичный поток, а платформа - Linux (то есть, не Windows) (см. 0 шестнадцатеричная ошибка при записи в файл? ), я ожидал, что вывод будет простым 0x0a.

Мне кажется, что перевод \n -> \r\n действительно происходит.Как это отключить?

1 Ответ

0 голосов
/ 18 декабря 2018

Оказывается, это действительно проблема с докером.См. выпуск 2789 .

...