Выравнивание текста файла по центру
Дан файл в котором текст выровнен по правому краю. Нужно выровнять по центру, с длиной строки 50 символов (в общем, не важно).
Использовал такую конструкцию:
filename = input("Введите имя файла: ")
with open(filename, 'r') as file:
lines = file.readlines()
for line_num in range(len(lines)):
lines[line_num] = '{:^50}'.format(lines[line_num])
with open(filename, 'w') as file:
file.writelines(lines)
После этого текст начинает плясать в разные стороны.
Ответы (2 шт):
Автор решения: Будни программиста
→ Ссылка
На сколько я знаю
def center(string, length):
l1 = (length - len(string))/2
return '-'*l1 + string + '-'*l1
Где length - это ваше 50
Автор решения: Эникейщик
→ Ссылка
Мешает символ перевода строки. Нужно перед выравниванием его убрать и потом опять добавить:
lines[line_num] = '{:^50}'.format(lines[line_num].strip()) + "\n"
Увидел, что исходный текст был выровнен по правому краю (я-то проверял на обычном тексте без выравнивания). Тогда наверняка еще выравнивающие пробелы все портили. К счастью, для приведенного решения это неважно, потому что strip() удаляет и пробелы в начале строки.