Python格式化大文本

2024-05-15 23:48:35 发布

您现在位置:Python中文网/ 问答频道 /正文

用python格式化一大块文本的最佳方法是什么?我不是要格式化输出,而是为了可读性。我一直在尝试跟踪guidelines for python layout,但我看不到任何关于如何格式化一大块文本的注释。

例如:

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:
"""

大块的文本看起来很糟糕,而且没有缩进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:
    """

但这会在输出的开头引入空格。

关于如何按照python的推荐布局来实现这一点,有什么想法吗?我想保持它的整洁和易于阅读。

可以不打印每行吗?e、 g

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"

上面是我希望代码显示的方式,而不是在每一行执行打印。


Tags: text文本selfvaluedefconfluenceatlassiansoftware
2条回答

相邻的字符串文字将自动连接。

>>> 'x' 'y'
'xy'
print("first line\n"
      "second line\n"
      "first part of third line"
      "rest of third line\n")

我经常在很长的时间里这样做。

相关问题 更多 >