vim table.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 def get_length(ts): 4 ls = [] 5 hs = ts['head'] 6 for h in hs: 7 ls.append(len(h)) 8 bs = ts['body'] 9 for b in bs: 10 for i in range(len(ls)): 11 li = len(b[i]) 12 if ls[i] < li: 13 ls[i] = li 14 return ls 15 def out_line(ts): 16 rs = '+'
17 ls = get_length(ts) 18 for l in ls: 19 rs += '-'*(l+2)+'+'
20 rs += '\n'
21 return rs 22
23 def out_head(ts): 24 rs = '|'
25 ls = get_length(ts) 26 hs = ts['head'] 27 for i in range(len(ls)): 28 rs += ' '+hs[i]+' '*(ls[i]-len(hs[i]))+' |'
29 rs += '\n'
30 return rs 31
32 def out_body(ts): 33 rs = ''
34 ls = get_length(ts) 35 bs = ts['body'] 36 for i in bs: 37 r ='|'
38 for j in range(len(ls)): 39 r += ' '+i[j]+' '*(ls[j]-len(i[j]))+' |'
40 rs += r + '\n'
41 return rs 42 def out_table(ts): 43 rs = out_line(ts) 44 rs += out_head(ts) 45 rs += out_line(ts) 46 rs += out_body(ts) 47 rs += out_line(ts) 48 return rs 49 if __name__ == '__main__': 50 T = { 51 'head':[ 'User','Host', 'Password', 'tip'], 52 'body':[ 53 ['root','localhost', 'abc', ''], 54 ['andy','127.0.0.1', '1234567890', ''], 55 ['tim', '111.67.192.108', '', ''], 56 ] 57 } 58 print(out_table(T),end='')
執行結果:
+------+----------------+------------+-----+
| User | Host | Password | tip |
+------+----------------+------------+-----+
| root | localhost | abc | |
| andy | 127.0.0.1 | 1234567890 | |
| tim | 111.67.192.108 | | |
+------+----------------+------------+-----+
調用上邊的表模塊,製做屬於本身的數據表
vim biao.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 import table 4
5 ts = { 6 'head': ['.jpg', '.png', '.gif'], 7 'body': [ 8 ['abc.jpg', 'xyz.png', 'xxx.gif'], 9 ['abc.jpg', 'xyz.png', 'xxx.gif'], 10 ['abc.jpg', 'xyz.png', 'xxx.gif'], 11 ] 12 } 13
14 rs = table.out_table(ts) 15 print(rs)執行結果:+---------+---------+---------+| .jpg | .png | .gif |+---------+---------+---------+| abc.jpg | xyz.png | xxx.gif || abc.jpg | xyz.png | xxx.gif || abc.jpg | xyz.png | xxx.gif |+---------+---------+---------+