How to write Unix end of line characters in Windows?

后端 未结 3 1067
执笔经年
执笔经年 2020-11-27 14:42

How can I write to files using Python (on Windows) and use the Unix end of line character?

e.g. When doing:

f = open(\'file.txt\', \'w\')
f.write(\'hello\\n         


        
3条回答
  •  庸人自扰
    2020-11-27 14:59

    The modern way: use newline=''

    Use the newline= keyword parameter to io.open() to use Unix-style LF end-of-line terminators:

    import io
    f = io.open('file.txt', 'w', newline='\n')
    

    This works in Python 2.6+. In Python 3 you could also use the builtin open() function's newline= parameter instead of io.open().

    The old way: binary mode

    The old way to prevent newline conversion, which does not work in Python 3, is to open the file in binary mode to prevent the translation of end-of-line characters:

    f = open('file.txt', 'wb')    # note the 'b' meaning binary
    

    but in Python 3, binary mode will read bytes and not characters so it won't do what you want. You'll probably get exceptions when you try to do string I/O on the stream. (e.g. "TypeError: 'str' does not support the buffer interface").

提交回复
热议问题