#!/usr/bin/python3 import re import sys import os import copy ISPIPE = re.compile(r'(? colsizes[ind]: colsizes[ind] = cell_size return colsizes def pad_cells_and_center(rows): pad = 1 cells_to_pad = copy.deepcopy(rows) colsizes = calc_colnums(rows) for row_id,row in enumerate(cells_to_pad): for col_ind,cell in enumerate(row): cell_size = len(cell.strip()) numspaces = (colsizes[col_ind] - cell_size) + pad if row_id == 1: cells_to_pad[row_id][col_ind] = ' ' * pad + '-' * colsizes[col_ind] + ' ' * pad continue cells_to_pad[row_id][col_ind] = ' ' * pad + cell.strip() + ' '* numspaces return(cells_to_pad) if __name__ == "__main__": table = [] for row_string in sys.stdin: table.append(ISPIPE.split(row_string.strip())[1:-1]) table = pad_cells_and_center(table) for row in ['|' + '|'.join(r) + '|' for r in table]: print(row)