pet*_*den 9 python string-formatting
在python中格式化大块文本的最佳方法是什么?我不是指格式化输出,而是为了可读性.我一直在尝试遵循python布局的指导原则,但我没有看到有关如何格式化大量文本的任何评论.
例如:
class GenerateCalendar(object):
def __init__(self):
super( GenerateCalendar, self ).__init__()
def getCalendarHeader( self ):
print """
BEGIN:VCALENDAR
PRODID:-//Atlassian Software Systems//Confluence Calendar Plugin//EN
VERSION:2.0
CALSCALE:GREGORIAN
X-WR-CALNAME;VALUE=TEXT:
X-WR-CALDESC;VALUE=TEXT:
"""
Run Code Online (Sandbox Code Playgroud)
大块文本看起来很糟糕,并没有缩进4个空格,因此很难阅读.
我想看到的是:
def getCalendarHeader( self ):
print """
BEGIN:VCALENDAR
PRODID:-//Atlassian Software Systems//Confluence Calendar Plugin//EN
VERSION:2.0
CALSCALE:GREGORIAN
X-WR-CALNAME;VALUE=TEXT:
X-WR-CALDESC;VALUE=TEXT:
"""
Run Code Online (Sandbox Code Playgroud)
但这会在输出的开头引入空白区域.
有关如何使其遵循python推荐布局的任何想法?我想保持它整洁,易于阅读.
是否可以在不对每行进行打印的情况下这样做?例如
def getCalendarHeader( self ):
print "BEGIN:VCALENDAR\n"
print "PRODID:-//Atlassian Software Systems//Confluence Calendar Plugin//EN\n"
print "VERSION:2.0\n"
print "CALSCALE:GREGORIAN\n"
print "X-WR-CALNAME;VALUE=TEXT:\n"
print "X-WR-CALDESC;VALUE=TEXT:\n"
Run Code Online (Sandbox Code Playgroud)
以上是我希望代码出现的方式,而不需要在每一行上进行打印.
Ned*_*der 22
标准库有以下工具:
import textwrap
#...
def getCalendarHeader(self):
print textwrap.dedent("""\
BEGIN:VCALENDAR
PRODID:-//Atlassian Software Systems//Confluence Calendar Plugin//EN
VERSION:2.0
CALSCALE:GREGORIAN
X-WR-CALNAME;VALUE=TEXT:
X-WR-CALDESC;VALUE=TEXT:
""")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21822 次 |
| 最近记录: |