Python 跨平台向字符串添加换行符
我正在应用程序中生成一些文本。由于文本是更大消息的一部分,有时我需要添加换行符,有时不需要:Python 跨平台向字符串添加换行符,python,linux,windows,cross-platform,newline,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 这可用于以下方面: de
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)
如何以跨平台的方式定义新行?或者更好的是,标准库(或python中包含的)中是否有一个函数可以将换行符附加到字符串?(打印时不一定要这样做,只需在内存中的字符串中添加一个换行符即可)。如果python正在运行,那么所使用的换行符应该是平台的正确换行符。我总是使用换行符
'\n'
来表示换行符,虽然windows使用换行符和回车符,但我在我的windows机器(python 3.4)上测试了在内存中生成一个字符串,然后将其写入文件,在内存中,它保持为单个字符('\n'
),但在写入文件时,它会转换为两个字符,以便在windows上有正确的行结尾。到目前为止,我还没有遇到一个库与此相关的问题。您可以尝试以下方法:
import os
print(os.linesep)
Python使用
\n
表示换行符
Python根据平台自动将\n
转换为正确的换行符
你也可以试试
import os
print (os.linesep)
您需要打印邮件,使其显示为新行
get_txt()
msg = get_message()
print(msg)
将为您提供:
Hello
Hello
Hello
只需确保打印到文件。您是否尝试过代码中的注释中提到的
os.linesep
?@ironfirst:我没有要测试的Windows计算机,我还看到过使用os.linesep
()的引用。我想知道在字符串中嵌入换行符的标准方法是什么,而不需要打印。我需要的可能是print对换行符的内部处理,但我不确定。所以…这应该可以回答…不?…这是一个您不需要关心的实现细节…根据您编写文件的平台,Python将确保以适当的行结尾结束该行。@IronFist:不,不需要。如何以跨平台的方式使用换行分隔符在内存中构建字符串?我应该在所有平台中使用\n
?我想我的根本问题是:内存中的换行符在windows和linux中是不同的,还是这种差异只存在于IO支持的数据(文件和终端)上?阅读该链接向我建议,您应该只使用'\n'
,python将在需要时在windows上处理转换。。。如果写入文件?