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

新手上路,请多包涵

我正在我的应用程序中生成一些文本。由于文本是更大信息的一部分,有时我需要添加换行符,有时不需要:

 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 正在运行,使用的换行符应该是适合平台的换行符

原文由 blueFast 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 715
2 个回答

我一直只是使用换行符 '\n' 来表示换行符,虽然windows使用换行符和回车符,但我在我的windows机器(python 3.4)上测试了在内存中构建一个字符串然后写入它写入文件,而在内存中它保留为单个字符( '\n' )但是当写入文件时,它被转换为两个字符以在 Windows 上以正确的行结尾。

到目前为止,我还没有遇到一个有这个问题的图书馆。

原文由 James Kent 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以试试这个:

 import os
print(os.linesep)

原文由 decadenza 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题