[Python-Dev] indented longstrings?

skip@pobox.com skip at pobox.com
Sat Nov 12 03:56:32 CET 2005


 Avi> Python's longstring facility is very useful, but unhappily breaks
 Avi> indentation. I find myself writing code like
 Avi> msg = ('From: %s\r\n'
 Avi> + 'To: %s\r\n'
 Avi> + 'Subject: Host failure report for %s\r\n'
 Avi> + 'Date: %s\r\n'
 Avi> + '\r\n'
 Avi> + '%s\r\n') % (fr, ', '.join(to), host, time.ctime(), err)
 Avi> mail.sendmail(fr, to, msg)
This really belongs on comp.lang.python, at least until you've exhausted the
existing possibilities and found them lacking. However, try:
 msg = ('From: %s\r\n'
 'To: %s\r\n'
 'Subject: Host failure report for %s\r\n'
 'Date: %s\r\n'
 '\r\n'
 '%s\r\n') % (fr, ', '.join(to), host, time.ctime(), err)
or
 msg = ('''\
From: %s
To: %s
Subject: Host failure report for %s
Date: %s
%s
') % (fr, ', '.join(to), host, time.ctime(), err)
or (untested)
 def istring(s):
 return re.sub(r"(\r?\n)\s+", r"1円", s)
 msg = """From: %s
 To: %s
 Subject: Host failure report for %s
 Date: %s
 %s
 """
 msg = istring(msg) % (fr, ', '.join(to), host, time.ctime(), err)
Skip


More information about the Python-Dev mailing list

AltStyle によって変換されたページ (->オリジナル) /