我正在我的应用程序中生成一些文本。由于文本是更大信息的一部分,有时我需要添加换行符,有时不需要:
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 许可协议
我一直只是使用换行符
'\n'
来表示换行符,虽然windows使用换行符和回车符,但我在我的windows机器(python 3.4)上测试了在内存中构建一个字符串然后写入它写入文件,而在内存中它保留为单个字符('\n'
)但是当写入文件时,它被转换为两个字符以在 Windows 上以正确的行结尾。到目前为止,我还没有遇到一个有这个问题的图书馆。