Сделать Python прекратить испускать возврат каретки при написании новых строк в sys.stdout

Я нахожусь в Windows, и Python (очень эффективно) мешает мне отправлять автономный символ '\n' в STDOUT. Например, следующее выведет foo\r\nvar :

 sys.stdout.write("foo\nvar") 

Как отключить эту функцию? Запись в файл сначала не является опцией, потому что вывод передается по каналу.

2 Solutions collect form web for “Сделать Python прекратить испускать возврат каретки при написании новых строк в sys.stdout”

Попробуйте следующее:

 import sys if sys.platform == "win32": import os, msvcrt msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) 

Если вы хотите временно переключиться на двоичный режим, вы можете написать себе обертку:

 import sys from contextlib import contextmanager @contextmanager def binary_mode(f): if sys.platform != "win32": yield; return import msvcrt, os def setmode(mode): f.flush() msvcrt.setmode(f.fileno(), mode) setmode(os.O_BINARY) try: yield finally: setmode(os.O_TEXT) with binary_mode(sys.stdout), binary_mode(sys.stderr): # code 

Добавьте 'r' перед строкой :

 sys.stdout.write(r"foo\nvar") 

Как и ожидалось, он также работает для печати.

  • Как напечатать строку юникода в python в консоли Windows
  • Subtime Text 2 - не может запускать команду Windows с пробелами и кавычками
  • Python копирует DLL на сайт-пакеты в Windows
  • Как тихо удалить Python 2.7 на Windows?
  • Почему ответ Селена не имеет сеанса?
  • Функциональность Readline для окон с помощью python 2.7
  • scipy.optimize dll load failure в Windows 8
  • Как получить весь вывод из моего .exe, используя подпроцесс и Popen?
  • Python - лучший язык программирования в мире.