我想将一些文字格式化为protein data bank file format。基本上我需要做的是在特定列中启动文本。现在我正在使用ljust
和rjust
进行格式化,但我觉得应该有一些神奇的功能,我可以用它来表达一个单词以及它应该从哪个列开始。
非常感谢任何帮助。谢谢
如果我的Statckoverflow搜索失败,请指出我的方向。
答案 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}
告诉format
对str(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