Python經過prettytable模塊將輸出內容如表格方式整齊輸出,可用來生成美觀的ASCII格式的表格,十分實用。python
python自己並不內置,須要獨立安裝該第三方庫。ide
簡單使用orm
import prettytable as pt ## 按行添加數據 tb = pt.PrettyTable() tb.field_names = ["名字","投票人數","類型","產地","上映時間","時長","年代","評分"] tb.add_row(["美麗人生",42995,"劇情/喜劇/愛情","意大利","1997-12-20",116,1997,9.5]) tb.add_row(["肖申克的救贖",692795,"劇情/犯罪","美國","1994-09-10",142,1994,9.6]) print(tb)
+--------------+----------+----------------+--------+------------+------+------+------+ | 名字 | 投票人數 | 類型 | 產地 | 上映時間 | 時長 | 年代 | 評分 | +--------------+----------+----------------+--------+------------+------+------+------+ | 美麗人生 | 42995 | 劇情/喜劇/愛情 | 意大利 | 1997-12-20 | 116 | 1997 | 9.5 | | 肖申克的救贖 | 692795 | 劇情/犯罪 | 美國 | 1994-09-10 | 142 | 1994 | 9.6 | +--------------+----------+----------------+--------+------------+------+------+------+
import prettytable as pt ## 按列添加數據 tb = pt.PrettyTable() tb.field_names = ["名字","投票人數","類型","產地","上映時間","時長","年代","評分"] tb.add_row(["美麗人生",42995,"劇情/喜劇/愛情","意大利","1997-12-20",116,1997,9.5]) tb.add_row(["肖申克的救贖",692795,"劇情/犯罪","美國","1994-09-10",142,1994,9.6]) tb.add_column('index',[1,2]) print(tb)
+--------------+----------+----------------+--------+------------+------+------+------+-------+ | 名字 | 投票人數 | 類型 | 產地 | 上映時間 | 時長 | 年代 | 評分 | index | +--------------+----------+----------------+--------+------------+------+------+------+-------+ | 美麗人生 | 42995 | 劇情/喜劇/愛情 | 意大利 | 1997-12-20 | 116 | 1997 | 9.5 | 1 | | 肖申克的救贖 | 692795 | 劇情/犯罪 | 美國 | 1994-09-10 | 142 | 1994 | 9.6 | 2 | +--------------+----------+----------------+--------+------------+------+------+------+-------+
切換輸出風格排序
import prettytable as pt ## 按列添加數據 tb = pt.PrettyTable() tb.field_names = ["名字","投票人數","類型","產地","上映時間","時長","年代","評分"] tb.add_row(["美麗人生",42995,"劇情/喜劇/愛情","意大利","1997-12-20",116,1997,9.5]) tb.add_row(["肖申克的救贖",692795,"劇情/犯罪","美國","1994-09-10",142,1994,9.6]) tb.add_column('index',[1,2]) ## 使用不一樣的輸出風格 tb.set_style(pt.MSWORD_FRIENDLY) print('--- style:MSWORD_FRIENDLY -----') print(tb) tb.set_style(pt.PLAIN_COLUMNS) print('--- style:PLAIN_COLUMNS -----') print(tb) ## 隨機風格,每次不一樣 tb.set_style(pt.RANDOM) print('--- style:MSWORD_FRIENDLY -----') print(tb) tb.set_style(pt.DEFAULT) print('--- style:DEFAULT -----') print(tb)
--- style:MSWORD_FRIENDLY ----- | 名字 | 投票人數 | 類型 | 產地 | 上映時間 | 時長 | 年代 | 評分 | index | | 美麗人生 | 42995 | 劇情/喜劇/愛情 | 意大利 | 1997-12-20 | 116 | 1997 | 9.5 | 1 | | 肖申克的救贖 | 692795 | 劇情/犯罪 | 美國 | 1994-09-10 | 142 | 1994 | 9.6 | 2 | --- style:PLAIN_COLUMNS ----- 名字 投票人數 類型 產地 上映時間 時長 年代 評分 index 美麗人生 42995 劇情/喜劇/愛情 意大利 1997-12-20 116 1997 9.5 1 肖申克的救贖 692795 劇情/犯罪 美國 1994-09-10 142 1994 9.6 2 --- style:MSWORD_FRIENDLY ----- {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ 美麗人生 42995 劇情/喜劇/愛情 意大利 1997-12-20 116 1997 9.5 1 {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ 肖申克的救贖 692795 劇情/犯罪 美國 1994-09-10 142 1994 9.6 2 {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ --- style:DEFAULT ----- +--------------+----------+----------------+--------+------------+------+------+------+-------+ | 名字 | 投票人數 | 類型 | 產地 | 上映時間 | 時長 | 年代 | 評分 | index | +--------------+----------+----------------+--------+------------+------+------+------+-------+ | 美麗人生 | 42995 | 劇情/喜劇/愛情 | 意大利 | 1997-12-20 | 116 | 1997 | 9.5 | 1 | | 肖申克的救贖 | 692795 | 劇情/犯罪 | 美國 | 1994-09-10 | 142 | 1994 | 9.6 | 2 | +--------------+----------+----------------+--------+------------+------+------+------+-------+
自定義輸出格式字符串
import prettytable as pt
## 按列添加數據
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人數","類型","產地","上映時間","時長","年代","評分"]
tb.add_row(["美麗人生",42995,"劇情/喜劇/愛情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救贖",692795,"劇情/犯罪","美國","1994-09-10",142,1994,9.6])
tb.add_column('index',[1,2])
## 自定義表格輸出樣式
### 設定對齊方式
# ["l","c","r"] l:左對齊,c:中間對齊,r:右對齊
tb.align='c'
### 設定數字輸出格式
tb.float_format = '1'
### 設定邊框鏈接符爲'*"
tb.junction_char = "*"
### 設定排序方式
tb.sortby = "投票人數"
### 設定左側不填充空白字符
tb.left_padding_width = 0
### 填充寬度
tb.padding_width= 5
print(tb)
*-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------* | 名字 |投票人數 | 類型 | 產地 | 上映時間 |時長 |年代 | 評分 |index | *-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------* | 美麗人生 | 42995 |劇情/喜劇/愛情 |意大利 |1997-12-20 |116 |1997 |9.500000 | 1 | |肖申克的救贖 | 692795 | 劇情/犯罪 | 美國 |1994-09-10 |142 |1994 |9.600000 | 2 | *-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------*
獲取特定內容get
import prettytable as pt ## 按列添加數據 tb = pt.PrettyTable() tb.field_names = ["名字","投票人數","類型","產地","上映時間","時長","年代","評分"] tb.add_row(["美麗人生",42995,"劇情/喜劇/愛情","意大利","1997-12-20",116,1997,9.5]) tb.add_row(["肖申克的救贖",692795,"劇情/犯罪","美國","1994-09-10",142,1994,9.6]) tb.add_column('index',[1,2]) ## 不打印,獲取表格字符串 s = tb.get_string() print(s) ## 能夠只獲取指定列或行 ##這裏只獲取'名字'與'時長'這兩列,從第一行到第二行 s = tb.get_string(fields=["名字", '時長'],start=1,end=2) print(s)
+--------------+----------+----------------+--------+------------+------+------+------+-------+ | 名字 | 投票人數 | 類型 | 產地 | 上映時間 | 時長 | 年代 | 評分 | index | +--------------+----------+----------------+--------+------------+------+------+------+-------+ | 美麗人生 | 42995 | 劇情/喜劇/愛情 | 意大利 | 1997-12-20 | 116 | 1997 | 9.5 | 1 | | 肖申克的救贖 | 692795 | 劇情/犯罪 | 美國 | 1994-09-10 | 142 | 1994 | 9.6 | 2 | +--------------+----------+----------------+--------+------------+------+------+------+-------+ +--------------+------+ | 名字 | 時長 | +--------------+------+ | 肖申克的救贖 | 142 | +--------------+------+