Установка: python3.6 для окон в Cygwin (необходимо использовать версию Win из-за функций, представленных в 3.5, а Cygwin застрял на 3.4)
Как получить \n
новых строк в буфере (stdout) на выходе из скрипта python (вместо \r\n
)? Вывод представляет собой список путей, и я хочу получить по одному на строку для дальнейшей обработки другими инструментами Cygwin/Windows.
Все ответы, которые я нашел до сих пор, касаются записи файлов, и я просто хочу изменить то, что написано в стандартный вывод. Пока единственный верный способ избавиться от \r
— это передавать результаты через sed 's/\\10//'
, что неудобно.
Странно то, что даже приложения Windows, получающие вывод скрипта, не принимают его с такими сообщениями, как:
Can't find file <asdf.txt
>
(обратите внимание на новую строку перед >)
Предположительно sys.stdout.write
выполняет чистый вывод, но при выполнении:
sys.stdout.write(line)
Я получаю список путей без какого-либо разделения. Если я ввожу что-либо похожее на NL (\n
, \012
и т. д.), оно автоматически преобразуется в CRLF (\r\n
). Как остановить это преобразование?
sys.stdout.buffer.write((line+'\n').encode('utf-8'))
. Остальную часть программы хранюline
без украшений :) 08.03.2017