1. 程式人生 > >python打印表格技巧

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