首先:
将信息存储在有序字典中,以保持其顺序,并将数据组织成键值对:import collections
d = collections.OrderedDict([
('SERiES', 'Game of Thrones'),
('SiZE', '47,196,930,048 bytes'),
('AUDiO FORMATS', 'English: DTS-HD Master Audio 5.1, French: DTS 5.1, Spanish: DTS 5.1, Polish: DTS 2.0, Spanish: DTS 2.0'),
('UPC', '883929191505'),
('RETAiL RELEASE DATE', '03-06-2012'),
('REGiON', 'A, B, C'),
('STUDiO', 'HBO Home Video'),
('ViDEO', '1080p 1.78:1'),
('SOURCE', 'BD50'),
('RESOLUTiON', '1080p'),
('ASPECT RATiO', '16:9')
])
秒:
您将需要一个单词包装器,以便仅在给定的列长度处包装整个单词:
^{pr2}$
第三:
您需要一个字典格式化程序,在这里可以设置分隔符、整个文本的宽度、文本前面的填充空间以及分隔符前后的空格:def format_dict(dictionary, sep=':', width=80, pad=2, pre=1, post=1):
max_len = max(len(k) for k in dictionary)
para_pad = '%s%s' % ('\n', (pad + max_len + pre + len(sep) + post)*' ')
separator = '%s%s%s' % (pre*' ', sep, post*' ')
output = list()
for key, value in dictionary.iteritems():
output.append(
'%s%s%s' % (
'%s%s' % ((max_len + pad - len(key))*' ', key),
separator,
para_pad.join(word_wrap(str(value), width - len(para_pad)))
)
)
return [''.join(l) for l in output]
第四:
装饰段落的左右两侧:def decorate_para(string, deco='|', width=80):
output = list()
for line in string.split('\n'):
output.append('%s%s%s%s' % (deco, line, (width - len(line))*' ', deco))
return '\n'.join(output)
第五:
通过打印测试输出:w = 79
print decorate_para('\n'.join(format_dict(d, width=w - 2)), width=w)
还有哇!输出为:| SERiES : Game of Thrones |
| SiZE : 47,196,930,048 bytes |
| AUDiO FORMATS : English: DTS-HD Master Audio 5.1, French: DTS 5.1, |
| Spanish: DTS 5.1, Polish: DTS 2.0, Spanish: DTS 2.0 |
| UPC : 883929191505 |
| RETAiL RELEASE DATE : 03-06-2012 |
| REGiON : A, B, C |
| STUDiO : HBO Home Video |
| ViDEO : 1080p 1.78:1 |
| SOURCE : BD50 |
| RESOLUTiON : 1080p |
| ASPECT RATiO : 16:9 |