Форум сайта python.su
Доброго времени дня.
Понадобилось при создании файла, форматировать каждую строку. Что бы улучшить читаемость файла.
Немного подробней. Необходимо при записи строк в файл, форматировать их так, что бы у каждой строки была фиксированная ширина, и “слова” и переменные начинались с заранее определенных мест.
Вот пример файла:
--------------------------------------------------
name1 : val1
--------------------------------------------------
name2 : val2
--------------------------------------------------
name3 : val3
--------------------------------------------------
f.write("{:-<50}\n".format('')) f.write("{:2}account{:5}: {}\n".format('', '', root_domain)) f.write("{:-<50}\n".format(''))
Отредактировано KsenZ (Ноя. 30, 2017 06:23:44)
Офлайн
KsenZ
Путь истинного джедая - нагуглить готовое решение. Что-нибудь типа https://code.google.com/archive/p/prettytable/wikis/Tutorial.wiki. Наверняка не вы первый, кто форматирует логи.
Офлайн
FishHookэто было первое, чем я начал заниматься.
Путь истинного джедая - нагуглить готовое решение
FishHookэто не совсем то, что мне необходимо, не таблица…
Наверняка не вы первый, кто форматирует логи.
Офлайн
KsenZЧастное решение может быть как у вас.
Что бы улучшить читаемость файла.
FishHook
Путь истинного джедая
Офлайн
>>> def make_formated_data(data, widths): ... fmt = ' : '.join('{{:>{0}}}'.format(i) for i in widths) ... out = '\n'.join(fmt.format(*i) for i in data) ... return out ... >>> def get_max_field_widths(lst): ... return (max(map(len, (r[i] for r in lst))) ... for i in range(len(lst[0]))) ... >>> lst = [['name1', 'val1__', 'val11'], ... ['name2_______', 'val2', 'val22'], ... ['name3', 'val3', 'val33_____'], ... ['name4', 'val4', 'val44']] >>> >>> formated_data = make_formated_data(lst, get_max_field_widths(lst)) >>> print(formated_data) name1 : val1__ : val11 name2_______ : val2 : val22 name3 : val3 : val33_____ name4 : val4 : val44 >>>
Офлайн
doza_andВ латех логи писать лишь мастеру Йоде мастерство доступно
Поэтому джедаи генерируют файл с данными отдельно а файл для визуального просмотра отдельно, мы например делаем латех документ который компилируется в pdf,dvi или подобные форматы.
Офлайн
doza_andВсе, что вы написали верно. У меня частный случай, и не думаю, что он будет интересен широкой публике.
py.user.nextСпасибо большое. Идея понятна.
Офлайн