我在我的应用程序中生成一些文本。由于该文本是更大信息的一部分,有时我需要添加换行符,有时不需要:
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运行所在平台的正确换行符。
os.linesep
试过了吗? - Iron Fist\n
吗?我想我的根本问题是:在内存中的换行符分隔符在Windows和Linux上是否不同,或者这种差异仅存在于IO支持的数据(文件和终端)上? - blueFast'\n'
,如果有必要(例如写入文件),Python会在Windows上处理转换。 - James Kent'\n'
在内存中构建一个字符串,然后将其写入文件,Python确实会替换它(通过十六进制编辑器进行了检查),而且我从未在任何其他库中使用简单的换行符遇到过任何问题... - James Kent