Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 跨平台向字符串添加换行符_Python_Linux_Windows_Cross Platform_Newline - Fatal编程技术网

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上处理转换。。。如果写入文件?