Python: форматирование выходной строки, выравнивание по правому краю

Я обрабатываю текстовый файл, содержащий координаты x, y, z

1 128 1298039 123388 0 2 .... 

каждая строка делится на 3 элемента, используя

 words = line.split() 

После обработки данных мне нужно записать координаты обратно в другой txt-файл, так как элементы в каждом столбце выравниваются вправо (а также входной файл). Каждая строка состоит из координат

 line_new = words[0] + ' ' + words[1] + ' ' words[2]. 

Есть ли какой-нибудь манипулятор типа std::setw() и т. Д. В C ++, позволяющий установить ширину и выравнивание?

4 Solutions collect form web for “Python: форматирование выходной строки, выравнивание по правому краю”

Попробуйте этот подход, используя новый синтаксис str.format :

 line_new = '{:>12} {:>12} {:>12}'.format(word[0], word[1], word[2]) 

И вот как это сделать, используя старый синтаксис % (полезный для более старых версий Python, которые не поддерживают str.format ):

 line_new = '%12s %12s %12s' % (word[0], word[1], word[2]) 

Вы можете выровнять его так:

 print('{:>8} {:>8} {:>8}'.format(*words)) 

где > означает « выровнять по правому краю », а 8 – это ширина для определенного значения.

И вот доказательство:

 >>> for line in [[1, 128, 1298039], [123388, 0, 2]]: print('{:>8} {:>8} {:>8}'.format(*line)) 1 128 1298039 123388 0 2 

Ps. *line означает, что список line будет распакован, поэтому .format(*line) работает аналогично .format(line[0], line[1], line[2]) (предполагая, что line представляет собой список из трех элементов).

Это может быть достигнуто с помощью rjust :

 line_new = word[0].rjust(10) + word[1].rjust(10) + word[2].rjust(10) 

Простая таблица вывода:

 a = 0.3333333 b = 200/3 print("variable a variable b") print("%10.2f %10.2f" % (a, b)) 

вывод:

 variable a variable b 0.33 66.67 

% 10.2f: 10 – минимальная длина, а 2 – число знаков после запятой.

  • Форматирование печати номера Python с использованием%. * G
  • Форматирование строки Python, когда строка содержит «% s» без экранирования
  • Форматирование строк с помощью «{0: d}» не преобразуется в целое число
  • Как использовать форматирование строк, чтобы показать BOTH начальные нули и точность 3?
  • Формат строки с опциональным значением ключа ключа
  • замена строки python с помощью символа% / ** kwargs weirdness
  • Динамически вычисленное нулевое заполнение в строке формата в python
  • расширенное форматирование строк и строк шаблонов
  • Python - лучший язык программирования в мире.