Я хотел бы передавать текст с помощью unix-подобного EOL (LF) из Python через Windows CMD (консоль). Однако Python, по-видимому, автоматически преобразует отдельные символы новой строки в конец строки (EOL) в стиле Windows символы (т.е. \r\n
, <CR><LF>
, 0D 0A
, 13 10
):
#!python3
#coding=utf-8
import sys
print(sys.version)
print("one\ntwo")
# run as py t.py > t.txt
приводит к
3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]
one
two
или в шестнадцатеричном формате ... 6F 6E 65 0D 0A 74 77 6F 0D 0A
Второй EOL связан с тем, что print()
по умолчанию имеет значение end='\n'
, но также преобразование.
Для печати нет аргумента или свойства newline
, как для open()
, так как же этим можно управлять?