Python:将文本格式化为特定列

时间:2011-09-03 20:16:49

标签: python string-formatting

我想将一些文字格式化为protein data bank file format。基本上我需要做的是在特定列中启动文本。现在我正在使用ljustrjust进行格式化,但我觉得应该有一些神奇的功能,我可以用它来表达一个单词以及它应该从哪个列开始。

非常感谢任何帮助。谢谢

如果我的Statckoverflow搜索失败,请指出我的方向。

2 个答案:

答案 0 :(得分:1)

以下是如何使用str.format格式化“坐标记录说明”的示例:

CRD='{r:<6}{a:>9.3f}{b:>9.3f}{c:>9.3f}{alpha:7.2f}{beta:7.2f}{gamma:7.2f} {sp:<11}{z:>4}'

data=dict(r='CRYST1',a=117,b=15.0,c=39,alpha=90,beta=90,gamma=90,sp='P 21 21 21',z=8)
print(CRD.format(**data))

# CRYST1  117.000   15.000   39.000  90.00  90.00  90.00 P 21 21 21    8

格式说明符CRD以这种方式解释:

{r:<6}告诉formatstr(r)的值进行字符串插值,左对齐,宽度= 6。

{a:>9.3f}告诉format字符串插入a的浮点值,右对齐,小数点后总宽度为9位和3位。

指定格式的工作原理的完整说明here

答案 1 :(得分:0)

您可以使用字符串“格式”功能进行对齐。 http://docs.python.org/library/string.html#formatspec 您可以在源代码中找到Mark Summerfield的“Python 3编程:Python语言的完整简介”中的列示例,文件print_unicode.py