如何在长的多行字符串中添加换行符?
Posted
技术标签:
【中文标题】如何在长的多行字符串中添加换行符?【英文标题】:How to add a newline to a long multi-line string? 【发布时间】:2013-06-01 03:59:07 【问题描述】:我有一个这样的字符串:
my_xml = '''
<?xml version="1.0" encoding="utf-8" ?> \n
<entries> \n
<entry>1</entry> \n
<entry>2</entry> \n
</entries>
'''
return HttpResponse(my_xml)
这是我的输出,打印时没有换行,也没有 xml 标签:
1 2
我们如何在 Python 中添加换行符并制作浏览器解释器 xml 标签并打印它们?
【问题讨论】:
由于 Martijn Pieters 在他的回答中没有涵盖这方面:\n
是如何在 Python 中编写换行符。也就是说,您所写的是正确的,如果换行符实际上是您在这些位置所需要的。
@kampu:三重引号 also 添加了换行符。 s
示例字符串总共有 4 个换行符。
这可能是s
是正确的并且具有正确的新行数,但是一旦它返回为HttpResponse(s)
,它就会显示不正确。
@oleg:完全正确;浏览器将其显示为 html ..
【参考方案1】:
您正在浏览器中查看输出; HTML 浏览器考虑换行符空白,将连续的空白字符折叠成一个空格。
您的浏览器将响应解释为 HTML 格式的数据,请改用 <br/>
标签:
s = """ this is line 1<br/>
this is line 2<br/>
and other lines ..."""
如果您希望只看到换行符,请查看响应 source 代码;换行符就在那里。
如果您想在浏览器中查看 XML 输出,您应该设置内容类型标头 (text/xml
),以便浏览器知道您发送的是 XML 而不是 HTML:
return HttpResponse(s, content_type='text/xml') # Assumes you are using Django
您的浏览器将使用默认样式表来显示 XML 数据(通常作为具有可折叠部分的树)。您可以使用 XML 样式表 (XSLT) 来覆盖该行为。添加样式表头:
<?xml-stylesheet type="text/xsl" href="script.xsl" ?>
浏览器将获取命名的样式表并将其应用到您的 XML。
【讨论】:
@Drwhite:抱歉,我似乎无法解析你想说的话。 @Drwhite:这就是浏览器所做的;它解释 HTML 标签以形成格式化的文本。<br/>
是用于换行的 HTML 标记。
@kirelagin:XHTML 习惯很难改掉。对于直接的 HTML,两者都可以。
Err... text/xml
),显示 XML 的浏览器通常会将其格式化为树。你对浏览器如何显示你的输出有问题,而不是 Python 换行符。以上是关于如何在长的多行字符串中添加换行符?的主要内容,如果未能解决你的问题,请参考以下文章
python使用textwrap包在已经生成的长字符串中嵌入回车符实战