簡體   English   中英

為字符串添加換行符,跨平台

[英]Add newline to string, cross-platform

我正在我的應用程序中生成一些文本。 由於文本是更大消息的一部分,有時我需要添加換行符,有時不需要:

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 正在運行的平台的正確換行符

你可以試試這個:

import os
print(os.linesep)

我一直只使用換行符'\\n'來表示換行符,盡管 Windows 使用換行符和回車符,但我在我的 Windows 機器(python 3.4)上進行了測試,在內存中構建一個字符串,然后將其寫入文件,而在內存中它保留為單個字符( '\\n' ),但是當寫入文件時,它會轉換為兩個字符以在 Windows 上以正確的行結尾。
到目前為止,我還沒有遇到一個有這個問題的圖書館。

Python使用\\n來表示換行符。

Python 會根據平台自動將\\n轉換為正確的換行符。

你也可以試試

import os
print (os.linesep)

您需要打印消息以使其顯示為新行。

get_txt()
msg = get_message()
print(msg)

會給你:

Hello
Hello
Hello

只需要確保打印到文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM