Я обрабатываю текстовый файл, содержащий координаты x, y, z
1 128 1298039
123388 0 2
....
каждая строка разделена на 3 элемента с помощью
words = line.split()
После обработки данных мне нужно записать координаты обратно в другой текстовый файл, чтобы элементы в каждом столбце были выровнены по правому краю (а также во входном файле). Каждая строка состоит из координат
line_new = words[0] + ' ' + words[1] + ' ' words[2].
Есть ли std::setw()
в C ++ такие манипуляторы, как и т.д., позволяющие устанавливать ширину и выравнивание?
python
alignment
string-formatting
Justik
источник
источник
Это может быть достигнуто с помощью
rjust
:источник
Вы можете выровнять это так:
где
>
означает « выровнять по правому краю » и8
является шириной для определенного значения.И вот доказательство:
Ps.
*line
означает, чтоline
список будет распакован, поэтому.format(*line)
работает аналогично.format(line[0], line[1], line[2])
(при условииline
, что список состоит только из трех элементов).источник
Мне действительно нравится новая интерполяция буквенных строк в Python 3.6+:
Ссылка: PEP 498 - Интерполяция буквенных строк
источник
Вот еще один способ форматирования с использованием формата 'f-string':
Это обеспечит следующий вывод:
Что вы делаете здесь, так это то, что вы говорите, что первый столбец имеет длину 15 символов, он выровнен по левому краю, а второй столбец (значения) имеет длину 10 символов и выровнен по правому краю.
источник
widths = [15, 10]
f"{'Trades:':<width[0]}{cnt:>width[1]}",
Я хотел бы достичь чего-либо, как указано выше.f"{'Trades:':<{width[0]}}{cnt:>{width[1]}}"
Простая таблица результатов:
вывод:
% 10.2f: 10 - минимальная длина, а 2 - количество десятичных знаков.
источник
Чтобы сделать это с помощью f-строки и с контролем количества конечных цифр:
источник