在字符串,跨平台添加换行符

时间:2016-02-26 14:37:13

标签: python linux windows cross-platform newline

我正在申请中生成一些文字。由于文本是更大的消息的一部分,有时我需要添加换行符,有时不是:

NEWLINE = '\n'  # TODO: how to define this cross-platform? Can I use os.linesep?

def get_txt(add_newline=False):
    txt = 'Hello'
    if add_newline:
        txt += NEWLINE
    return txt

这可以使用如下:

def get_message():
    msg = get_txt(True)
    msg += get_txt(True)
    msg += get_txt(False)
    return msg

哪会回来:

Hello
Hello
Hello (no newline here)

如何以跨平台方式定义NEWLINE?或者更好的是,标准库中是否有一个函数(或包含在python中),它可以在字符串中附加换行符? (不一定在打印时,只需在内存中添加换行符)。使用的换行符应该是python正在运行的平台正确的

4 个答案:

答案 0 :(得分:9)

你可以试试这个:

let landmark = LandmarkViewController()
landmark.test()

答案 1 :(得分:5)

我总是只使用换行符'\n'来表示换行符,虽然windows使用换行符和回车符,我在我的Windows机器上测试(python 3.4)在内存中构建一个字符串然后将其写入文件,而在内存中它保持为单个字符('\n')但是当写入文件时,它会被转换为两个字符,以便在窗口上以正确的行结束。
到目前为止,我还没有遇到过一个存在问题的图书馆。

答案 2 :(得分:1)

Python 使用\n来表示换行符。

Python 会根据平台自动将\n转换为适当的换行符。

您也可以尝试

import os
print (os.linesep)

答案 3 :(得分:0)

您需要打印消息以使其显示为新行。

get_txt()
msg = get_message()
print(msg)

会给您:

Hello
Hello
Hello

只需确保打印到文件即可。