Python: форматирование текста в определенном столбце - PullRequest
1 голос
/ 04 сентября 2011

Я хотел бы отформатировать некоторый текст в файл банка данных белка .В основном, что мне нужно сделать, это начать текст в определенных столбцах.Прямо сейчас я делаю форматирование, используя ljust и rjust, но я чувствую, что должна быть какая-то волшебная функция, которую я мог бы использовать, чтобы дать слово и в каком столбце оно должно начинаться.

Любая помощь будетс благодарностью.Спасибо

Если мой поиск в Statckoverflow не удался, укажите мне в этом направлении.

Ответы [ 2 ]

1 голос
/ 04 сентября 2011

Вот пример того, как можно отформатировать «Описание записи координат», используя 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 цифры после десятичной точки.

Полное описание того, как работает указанный формат, дано здесь .

0 голосов
/ 04 сентября 2011

Вы можете использовать строковую функцию «формат» с выравниванием.http://docs.python.org/library/string.html#formatspec Пример со столбцами, которые вы можете найти в исходных кодах к «Программирование на Python 3: Полное введение в язык Python» Марка Саммерфилда, файл print_unicode.py

...