Я хотел бы отформатировать некоторый текст в формате файла банка данных с белком. В основном мне нужно начинать текст в определенных столбцах. Сейчас я делаю форматирование с помощью ljust
и rjust
но я чувствую, что должна быть какая-то волшебная функция, которую я мог бы использовать, дать слово и в каком столбце он должен начаться.
Любая помощь будет принята с благодарностью. благодаря
Если мой поиск в Statckoverflow не удался, укажите мне в этом направлении.
Вот пример того, как можно форматировать "Описание записи координат" с помощью 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
string-интерполировать значение float a
, {a:>9.3f}
, с общей шириной 9 и 3 цифрами после десятичной точки.
Полное описание того, как формат указанных работ по дан здесь.
Вы можете использовать функцию "формат" с выравниванием. http://docs.python.org/library/string.html#formatspec Пример со столбцами вы можете найти в исходных кодах в "Программирование на Python 3: полное введение в язык Python" Марком Саммерфилдом, файл print_unicode.py