[英]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.