#!/usr/bin/env python # -*- coding: utf-8 -*- def is_chinese(uchar): """判断一个unicode是否是汉字""" if uchar >= u'\u4e00' and uchar <= u'\u9fa5': return True else: return False def fill_text_to_print_width(text, width): stext = str(text) utext = stext.decode("utf-8") cn_count = 0 for u in utext: if is_chinese(u): cn_count += 1 return " " * (width - cn_count - len(utext)) + stext def print_table_line(title_config_pairs): fmt = "|".join((["{}"] * len(title_config_pairs))) print fmt.format(*map(lambda x:fill_text_to_print_width(x[0], x[1]), title_config_pairs)) print_table_line(( ("标题1", 10), ("2标题1", 11), ("2标11题1", 13), ("abc", 5), )) print_table_line(( ("好不好", 10), ("琰good", 11), ("琰go琰", 13), ("234", 5), ))