Если Вы не слишком придирчивы, о которой ширине столбцов браузер придумывает, пока они - то же через различные таблицы, можно использовать свойство CSS table-layout
(поддерживаемый всеми главными браузерами) в сочетании с таблицей width:
table {
table-layout: fixed;
width: 100%;
}
Это заставляет все столбцы (без указанной ширины) иметь ту же ширину, независимо от содержания таблицы.
Два подхода должны записать в строковый буфер или записать строки в список и присоединиться к ним позже. Я думаю эти 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=':')