python打印表格技巧

有的时候需要用到打印出表格效果,但是因为中文的存在使得表格打印效果不如人意,所以特地写了这样一段脚本,解决了制表符不能完美解决的问题。同一行每一列内容可以不同步打印,适用于需要复杂计算的情形。如有问题,请高手斧正。
class writer_server(object):
    li = []

    @classmethod
    def next_line(cls):
        cls.li.clear()
        sys.stdout.write('\n')
        sys.stdout.flush()

    @classmethod
    def print(cls, text, max=10):
        cls.li.append([text, max])
        sys.stdout.write('\r')
        for i in cls.li:
            cls.pretty(i[0], i[1])
        sys.stdout.flush()

    @classmethod
    def pretty(cls, text, max=10):
        l = cls.print_len(text)
        sys.stdout.write(text)
        if l < max:
            for i in range(max - l):
                sys.stdout.write(" ")
        sys.stdout.write('\t')

    @classmethod
    def println(cls, text, max=10):
        cls.print(text)
        cls.next_line()

    @staticmethod  
    def print_len(text):
        length = 0
        for i in text:
            if ord(i) < 128:
                length += 1
            else:
                length += 2
        return length

你可能感兴趣的:(python打印表格技巧)