Функциональность, подобная sprintf, в Python

Если Вы не слишком придирчивы, о которой ширине столбцов браузер придумывает, пока они - то же через различные таблицы, можно использовать свойство CSS table-layout (поддерживаемый всеми главными браузерами) в сочетании с таблицей width:

table {
    table-layout: fixed;
    width: 100%;
}

Это заставляет все столбцы (без указанной ширины) иметь ту же ширину, независимо от содержания таблицы.

117
задан Cœur 18 March 2017 в 08:12
поделиться

1 ответ

Два подхода должны записать в строковый буфер или записать строки в список и присоединиться к ним позже. Я думаю эти StringIO, подход является большим количеством pythonic, но не работал перед Python 2.6.

from io import StringIO

with StringIO() as s:
   print("Hello", file=s)
   print("Goodbye", file=s)
   # And later...
   with open('myfile', 'w') as f:
       f.write(s.getvalue())

можно также использовать их без ContextMananger (s = StringIO()). В настоящее время я использую класс менеджера по контексту с print функция. Этот фрагмент мог бы быть полезным, чтобы смочь вставить отладку или нечетные требования подкачки страниц:

class Report:
    ... usual init/enter/exit
    def print(self, *args, **kwargs):
        with StringIO() as s:
            print(*args, **kwargs, file=s)
            out = s.getvalue()
        ... stuff with out

with Report() as r:
   r.print(f"This is {datetime.date.today()}!", 'Yikes!', end=':')
0
ответ дан 24 November 2019 в 02:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: