Cheat sheet for "new style" string formatting in Python 2.6. It is modified version of examples from http://pyformat.info/ Difference is that simplest sytaxt ( '{}'.format('foo') ) does not work in Python 2.6 and you need to specify value index for each value ( '{0}'.format('foo') ).
Format:
'{1} {0}'.format('one', 'two')
Align right:
'{0:>10}'.format('test')
Align left:
'{0:10}{1}'.format('test', '...')
Align by argument:
'{0:<{1}s}'.format('test', 8)
Truncate:
'{0:.5}'.format('xylophone')
Trucate by argument:
'{0:.{1}}'.format('xylophone', 7)
Combining truncating and padding
'{0:10.5}'.format('xylophone')
Number:
'{0:d}'.format(42)
Floats:
'{0:f}'.format(3.141592653589793)
Padding numbers
'{0:4d}'.format(42)
'{0:06.2f}'.format(3.141592653589793)
'{0:04d}'.format(42)
Signed numbers
'{0:+d}'.format(42)
'{0: d}'.format(-23)
'{0:=5d}'.format(-23)
Named placeholders
data = {
'first': 'Hodor',
'last': 'Hodor!',
}
'{first} {last}'.format(**data)
'{first} {last}'.format(first="Hodor", last="Hodor!")
Getitem and Getattr
person = {
'first': 'Jean-Luc',
'last': 'Picard',
}
'{p[first]} {p[last]}'.format(p=person)
data = [4, 8, 15, 16, 23, 42]
'{d[4]} {d[5]}'.format(d=data)
class Plant(object):
type = "tree"
'{p.type}'.format(p=Plant())
class Plant(object):
type = "tree"
kinds = [{
'name': "oak",
}, {
'name': "maple"
}]
'{p.type}: {p.kinds[0][name]}'.format(p=Plant())
Datetime
from datetime import datetime
'{0:%Y-%m-%d %H:%M}'.format(datetime(2001, 2, 3, 4, 5))
class HAL9000(object):
def __format__(self, format):
if format == "open-the-pod-bay-doors":
return "I'm afraid I can't do that."
return "HAL 9000"
'{0:open-the-pod-bay-doors}'.format(HAL9000())