2017-02-19 3 views
0

Я хочу запустить скрипт python на хосте Windows. Данные, сгенерированные скриптом, должны быть переданы в другой процесс. Этот процесс ожидает окончания строки в стиле Unix. Как я могу контролировать выходные окончания моего скрипта?Повторно открыть stdout в двоичном режиме?

Сценарий выдержки:

print "blob" 
print "mark: %d" & mark 
print "data %d" % os.path.getsize(localPath) 
    with open(localPath, "rb") as f: 
     print f.read() 

Это должно генерировать:

"blob\nmark: 0\n" 

Скрипт генерирует текст и двоичный выход. Таким образом, это не вариант преобразования результата с помощью программы dos2unix позже.

Можно ли повторно открыть stdout в двоичном режиме, чтобы избежать преобразования \ n -> \ r \ n?

ответ

1

Выходной сигнал можно контролировать, передав аргумент командной строки python: -u. Это вызывает небуферизованный вывод, а пропускает преобразование LF -> CRLF.

Также можно указать это в Взрыва линии:

#!/C/Python27/python -u 
Смежные вопросы