【问题标题】:Python - print until marker (a la PHP)?Python - 打印直到标记(a la PHP)?
【发布时间】:2011-05-04 23:27:06
【问题描述】:

在 PHP 中我可以这样做:

print <<<END
This uses the "here document" syntax to output
multiple lines
END;

有没有办法在 Python 中做类似的事情?

我想转储一大块 HTML 而不必担心转义,例如尖括号。

【问题讨论】:

  • “不用担心逃跑”?什么?你担心什么逃跑? Python 不是 PHP,也没有嵌入到 和 & 重要的网页中。你在问什么?
  • 我正在考虑转义任何可能被 python 解析器逐字处理的内容。行情可能吗?无论如何,我认为@Mark 的答案就是我想要的。
  • "行情可能吗?"可能是?你对什么样的报价有问题?你用的是什么 Python 教程?这很好,几乎每个教程都涵盖了这一点。请提供您使用的教程的标题或链接,省略了字符串。

标签: python escaping heredoc


【解决方案1】:

Python 没有带有任意开始/结束标记的 heredocs。您可以使用三引号(单引号或双引号)来实现非常相似的效果:

print '''
This uses the "here document" syntax to output
multiple lines
'''

添加r 使其成为原始字符串,这样反斜杠也不会被特殊处理。 r'''....'''

【讨论】:

  • 不同的是你这里以\n开头。
  • @Antoine Pelisse:可以省略换行符,但这样做会破坏源代码中良好的左对齐布局。您可以在运行时使用条带删除不需要的换行符,但这会降低性能。您可以在第一行使用反斜杠来转义新行'''\ ,但是您不能使用原始字符串。所以简而言之,答案是“不,Python 不完全具有此功能,但您可以非常接近。”
  • 如果最初的换行符让您感到困扰,您可以在第一行使用'''\ 。有时我们甚至会使用''' something long '''.strip() 来删除换行符。
  • 看起来正是我需要的:)
猜你喜欢
  • 2013-09-28
  • 1970-01-01
  • 2013-01-13
  • 2011-06-24
  • 2012-09-25
  • 1970-01-01
  • 1970-01-01
  • 2014-02-18
相关资源
最近更新 更多