<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # PrettyTable 教程 > 原文: [http://zetcode.com/python/prettytable/](http://zetcode.com/python/prettytable/) PrettyTable 教程展示了如何使用 Python PrettyTable 模塊在 Python 中生成 ASCII 表。 在本教程中,我們使用`PTable`模塊,該模塊是原始 PrettyTable 庫的分支。 ## PrettyTable PrettyTable 是用于生成簡單 ASCII 表的 Python 庫。 它的靈感來自 PostgreSQL shell `psql`中使用的 ASCII 表。 我們可以控制表格的許多方面,例如列填充的寬度,文本的對齊方式或表格邊框。 我們可以對數據進行排序。 我們還可以選擇在最終輸出中將顯示哪些列和行。 PrettyTable 可以從 CSV,HTML 或數據庫游標讀取數據,并以 ASCII 或 HTML 輸出數據。 ## PrettyTable 安裝 ```py $ sudo pip3 install PTable ``` 我們使用`pip3`工具安裝 PrettyTable。 ## 生成 PrettyTable 可以使用`add_row()`或`add_column()`方法創建表。 `create_by_row.py` ```py #!/usr/bin/python3 from prettytable import PrettyTable x = PrettyTable() x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.add_row(["Perth", 5386, 1554769, 869.4]) print(x) ``` 該示例使用`add_row()`方法創建一個 PrettyTable。 ```py from prettytable import PrettyTable ``` 從模塊中,我們導入`PrettyTable`。 ```py x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] ``` 我們設置標題名稱。 ```py x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) ``` 這些行通過`add_row()`添加到表中。 ```py print(x) ``` 最后,我們將表格打印到控制臺。 ```py $ ./create_by_row.py +-----------+------+------------+-----------------+ | City name | Area | Population | Annual Rainfall | +-----------+------+------------+-----------------+ | Adelaide | 1295 | 1158259 | 600.5 | | Brisbane | 5905 | 1857594 | 1146.4 | | Darwin | 112 | 120900 | 1714.7 | | Hobart | 1357 | 205556 | 619.5 | | Sydney | 2058 | 4336374 | 1214.8 | | Melbourne | 1566 | 3806092 | 646.9 | | Perth | 5386 | 1554769 | 869.4 | +-----------+------+------------+-----------------+ ``` 這是輸出。 在下一個示例中,我們使用`add_column()`方法創建相同的表。 `create_by_column.py` ```py #!/usr/bin/python3 from prettytable import PrettyTable x = PrettyTable() column_names = ["City name", "Area", "Population", "Annual Rainfall"] x.add_column(column_names[0], ["Adelaide", "Brisbane", "Darwin", "Hobart", "Sydney", "Melbourne", "Perth"]) x.add_column(column_names[1], [1295, 5905, 112, 1357, 2058, 1566, 5386 ]) x.add_column(column_names[2], [1158259, 1857594, 120900, 205556, 4336374, 3806092, 1554769]) x.add_column(column_names[3], [600.5, 1146.4, 1714.7, 619.5, 1214.8, 646.9, 869.4]) print(x) ``` 列名是`add_column()`方法的第一個參數。 ## PrettyTable 刪除行 使用`del_row()`可以刪除特定的行。 該方法獲取要刪除的行的索引。 請注意,索引從零開始。 `delete_rows.py` ```py #!/usr/bin/python3 from prettytable import PrettyTable x = PrettyTable() x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.add_row(["Perth", 5386, 1554769, 869.4]) x.del_row(6) x.del_row(5) x.del_row(4) x.del_row(3) print(x) ``` 在示例中,我們刪除最后四行。 ```py $ ./delete_rows.py +-----------+------+------------+-----------------+ | City name | Area | Population | Annual Rainfall | +-----------+------+------------+-----------------+ | Adelaide | 1295 | 1158259 | 600.5 | | Brisbane | 5905 | 1857594 | 1146.4 | | Darwin | 112 | 120900 | 1714.7 | +-----------+------+------------+-----------------+ ``` 前三行保留在輸出中。 ## PrettyTable 清除數據 `clear_rows()`方法從表中刪除所有行,但保留當前的列名。 `clear()`方法清除行名和列名。 `clear_rows.py` ```py #!/usr/bin/python3 from prettytable import PrettyTable x = PrettyTable() x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.add_row(["Perth", 5386, 1554769, 869.4]) x.clear_rows() print(x) ``` 該示例清除表中的所有行。 ```py $ ./clear_rows.py +-----------+------+------------+-----------------+ | City name | Area | Population | Annual Rainfall | +-----------+------+------------+-----------------+ +-----------+------+------------+-----------------+ ``` 這是示例的輸出。 該表的標題不會被刪除。 ## 從 CSV 生成 PrettyTable `from_csv()`方法可用于從 CSV 數據生成 PrettyTable。 `data.csv` ```py "City name", "Area", "Population", "Annual Rainfall" "Adelaide", 1295, 1158259, 600.5 "Brisbane", 5905, 1857594, 1146.4 "Darwin", 112, 120900, 1714.7 "Hobart", 1357, 205556, 619.5 "Sydney", 2058, 4336374, 1214.8 "Melbourne", 1566, 3806092, 646.9 "Perth", 5386, 1554769, 869.4 ``` `data.csv`包含用逗號分隔的數據。 請注意,第一行由表列名稱組成。 `read_from_csv.py` ```py #!/usr/bin/python3 from prettytable import from_csv with open("data.csv", "r") as fp: x = from_csv(fp) print(x) ``` 該示例從`data.csv`讀取數據,并從中生成帶有`from_csv()`的 PrettyTable。 ## 從數據庫游標生成 PrettyTable `from_db_cursor()`方法從數據庫游標生成 PrettyTable。 `cities.sql` ```py DROP TABLE IF EXISTS Cities; CREATE TABLE Cities(Id INTEGER PRIMARY KEY, Name TEXT, Area INTEGER, Population INTEGER, Rainfall REAL); INSERT INTO Cities(Name, Area, Population, Rainfall) VALUES("Adelaide", 1295, 1158259, 600.5); INSERT INTO Cities(Name, Area, Population, Rainfall) VALUES("Brisbane", 5905, 1857594, 1146.4); INSERT INTO Cities(Name, Area, Population, Rainfall) VALUES("Darwin", 112, 120900, 1714.7); INSERT INTO Cities(Name, Area, Population, Rainfall) VALUES("Hobart", 1357, 205556, 619.5); INSERT INTO Cities(Name, Area, Population, Rainfall) VALUES("Sydney", 2058, 4336374, 1214.8); INSERT INTO Cities(Name, Area, Population, Rainfall) VALUES("Melbourne", 1566, 3806092, 646.9); INSERT INTO Cities(Name, Area, Population, Rainfall) VALUES("Perth", 5386, 1554769, 869.4); ``` 這是一個 SQL 腳本,用于在 SQLite 數據庫中創建`Cities`表。 ```py $ sqlite3 data.db sqlite> .read cities.sql sqlite> SELECT * FROM Cities; Id Name Area Population Rainfall ---------- ---------- ---------- ---------- ---------- 1 Adelaide 1295 1158259 600.5 2 Brisbane 5905 1857594 1146.4 3 Darwin 112 120900 1714.7 4 Hobart 1357 205556 619.5 5 Sydney 2058 4336374 1214.8 6 Melbourne 1566 3806092 646.9 7 Perth 5386 1554769 869.4 ``` 我們閱讀了`cities.sql`腳本,該腳本生成數據庫表。 `read_from_cursor.py` ```py #!/usr/bin/python3 import sqlite3 as lite from prettytable import from_db_cursor con = lite.connect('data.db') with con: cur = con.cursor() cur.execute('SELECT * FROM Cities') x = from_db_cursor(cur) print(x) ``` 在代碼示例中,我們連接到`data.db`數據庫并從`Cities`表中選擇所有數據。 我們使用`from_db_cursor()`方法從游標生成一個 PrettyTable。 ## 從 HTML 生成 PrettyTable `from_html()`從一串 HTML 代碼生成一個 PrettyTables 列表。 HTML 中的每個`<table>`都成為一個 PrettyTable 對象。 `from_html_one()`從僅包含單個`<table>`的 HTML 代碼字符串中生成 PrettyTable。 `data.html` ```py <html> <body> <table> <tr> <th>City name</th> <th>Area</th> <th>Population</th> <th>Annual Rainfall</th> </tr> <tr> <td>Adelaide</td> <td>1295</td> <td>1158259</td> <td>600.5</td> </tr> <tr> <td>Brisbane</td> <td>5905</td> <td>1857594</td> <td>1146.4</td> </tr> <tr> <td>Darwin</td> <td>112</td> <td>120900</td> <td>1714.7</td> </tr> <tr> <td>Hobart</td> <td>1357</td> <td>205556</td> <td>619.5</td> </tr> <tr> <td>Sydney</td> <td>2058</td> <td>4336374</td> <td>1214.8</td> </tr> <tr> <td>Melbourne</td> <td>1566</td> <td>3806092</td> <td>646.9</td> </tr> <tr> <td>Perth</td> <td>5386</td> <td>1554769</td> <td>869.4</td> </tr> </table> </body> </html> ``` 在示例中,我們使用此 HTML 文件。 `read_from_html.py` ```py #!/usr/bin/python3 from prettytable import from_html_one with open("data.html", "r") as fp: html = fp.read() x = from_html_one(html) print(x) ``` 該示例從`data.html`文件中讀取數據,并使用`from_html_one()`方法生成一個 PrettyTable。 ## 排序數據 使用`sortby`屬性,我們將指定要排序的列。 `reversesort`屬性控制排序的方向(升序還是降序)。 `sorting.py` ```py #!/usr/bin/python3 from prettytable import PrettyTable x = PrettyTable() x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.add_row(["Perth", 5386, 1554769, 869.4]) print("Table sorted by population:") x.sortby = "Population" print(x) print() print("Table sorted by city in descendig order:") x.sortby = "City name" x.reversesort = True print(x) ``` 在示例中,我們對表的數據進行排序。 ```py print("Table sorted by population:") x.sortby = "Population" ``` 首先,我們按總體升序對數據進行排序。 ```py x.sortby = "City name" x.reversesort = True ``` 然后,我們按照城市名稱的降序對數據進行排序。 ```py $ ./sorting.py Table sorted by population: +-----------+------+------------+-----------------+ | City name | Area | Population | Annual Rainfall | +-----------+------+------------+-----------------+ | Darwin | 112 | 120900 | 1714.7 | | Hobart | 1357 | 205556 | 619.5 | | Adelaide | 1295 | 1158259 | 600.5 | | Perth | 5386 | 1554769 | 869.4 | | Brisbane | 5905 | 1857594 | 1146.4 | | Melbourne | 1566 | 3806092 | 646.9 | | Sydney | 2058 | 4336374 | 1214.8 | +-----------+------+------------+-----------------+ Table sorted by city in descendig order: +-----------+------+------------+-----------------+ | City name | Area | Population | Annual Rainfall | +-----------+------+------------+-----------------+ | Sydney | 2058 | 4336374 | 1214.8 | | Perth | 5386 | 1554769 | 869.4 | | Melbourne | 1566 | 3806092 | 646.9 | | Hobart | 1357 | 205556 | 619.5 | | Darwin | 112 | 120900 | 1714.7 | | Brisbane | 5905 | 1857594 | 1146.4 | | Adelaide | 1295 | 1158259 | 600.5 | +-----------+------+------------+-----------------+ ``` 這是輸出。 ## 數據對齊 `align`屬性控制字段的對齊方式。 其可能的值為`l`,`c`和`r`。 `alignment.py` ```py #!/usr/bin/python3 from prettytable import PrettyTable x = PrettyTable() x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] x.align["City name"] = "l" x.align["Area"] = "r" x.align["Annual Rainfall"] = "r" x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.add_row(["Perth", 5386, 1554769, 869.4]) print(x) ``` 該代碼示例在表格列中對齊數據。 ```py x.align["City name"] = "l" ``` 我們將`City name`列中的字段對齊到左側。 ```py x.align["Area"] = "r" x.align["Annual Rainfall"] = "r" ``` 我們將`Area`和`Annual Rainfall`中的字段右對齊。 ```py $ ./alignment.py +-----------+------+------------+-----------------+ | City name | Area | Population | Annual Rainfall | +-----------+------+------------+-----------------+ | Adelaide | 1295 | 1158259 | 600.5 | | Brisbane | 5905 | 1857594 | 1146.4 | | Darwin | 112 | 120900 | 1714.7 | | Hobart | 1357 | 205556 | 619.5 | | Sydney | 2058 | 4336374 | 1214.8 | | Melbourne | 1566 | 3806092 | 646.9 | | Perth | 5386 | 1554769 | 869.4 | +-----------+------+------------+-----------------+ ``` 這是輸出。 ## HTML 輸出 `get_html_string()`從 PrettyTable 生成 HTML 輸出。 `html_output.py` ```py #!/usr/bin/python3 from prettytable import PrettyTable x = PrettyTable(["City name", "Area", "Population", "Annual Rainfall"]) x.add_row(["Adelaide",1295, 1158259, 600.5]) x.add_row(["Brisbane",5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.add_row(["Perth", 5386, 1554769, 869.4]) print(x.get_html_string()) ``` 該示例將 HTML 表中的數據打印到控制臺。 ## `get_string`方法 `get_string()`方法返回當前狀態下的表的字符串表示形式。 它有幾個選項可以控制表格的顯示方式。 ### 顯示標題 使用`title`參數,我們可以在輸出中包括表標題。 `table_title.py` ```py #!/usr/bin/python3 from prettytable import PrettyTable x = PrettyTable(["City name", "Area", "Population", "Annual Rainfall"]) x.add_row(["Adelaide",1295, 1158259, 600.5]) x.add_row(["Brisbane",5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.add_row(["Perth", 5386, 1554769, 869.4]) print(x.get_string(title="Australian cities")) ``` 該示例創建一個帶標題的 PrettyTable。 ```py $ ./table_title.py +-------------------------------------------------+ | Australian cities | +-----------+------+------------+-----------------+ | City name | Area | Population | Annual Rainfall | +-----------+------+------------+-----------------+ | Adelaide | 1295 | 1158259 | 600.5 | | Brisbane | 5905 | 1857594 | 1146.4 | | Darwin | 112 | 120900 | 1714.7 | | Hobart | 1357 | 205556 | 619.5 | | Sydney | 2058 | 4336374 | 1214.8 | | Melbourne | 1566 | 3806092 | 646.9 | | Perth | 5386 | 1554769 | 869.4 | +-----------+------+------------+-----------------+ ``` 這是輸出。 ### 選擇列 使用`fields`選項,我們可以選擇將要顯示的列。 `select_columns.py` ```py #!/usr/bin/python3 from prettytable import PrettyTable x = PrettyTable(["City name", "Area", "Population", "Annual Rainfall"]) x.add_row(["Adelaide",1295, 1158259, 600.5]) x.add_row(["Brisbane",5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.add_row(["Perth", 5386, 1554769, 869.4]) print(x.get_string(fields=["City name", "Population"])) ``` 在該示例中,我們僅顯示`City name`和`Population`列。 ```py $ ./select_columns.py +-----------+------------+ | City name | Population | +-----------+------------+ | Adelaide | 1158259 | | Brisbane | 1857594 | | Darwin | 120900 | | Hobart | 205556 | | Sydney | 4336374 | | Melbourne | 3806092 | | Perth | 1554769 | +-----------+------------+ ``` ### 選擇行 使用`start`和`end`參數,我們可以選擇在輸出中顯示哪些行。 `select_rows.py` ```py #!/usr/bin/python3 from prettytable import PrettyTable x = PrettyTable(["City name", "Area", "Population", "Annual Rainfall"]) x.add_row(["Adelaide",1295, 1158259, 600.5]) x.add_row(["Brisbane",5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.add_row(["Perth", 5386, 1554769, 869.4]) print(x.get_string(start=1, end=4)) ``` 在示例中,我們在輸出中僅包括三行。 ```py $ ./select_rows.py +-----------+------+------------+-----------------+ | City name | Area | Population | Annual Rainfall | +-----------+------+------------+-----------------+ | Brisbane | 5905 | 1857594 | 1146.4 | | Darwin | 112 | 120900 | 1714.7 | | Hobart | 1357 | 205556 | 619.5 | +-----------+------+------------+-----------------+ ``` 這是示例的輸出。 在本教程中,我們已使用 PrettyTable 庫在 Python 中生成 ASCII 表。 您可能也會對以下相關教程感興趣: [Python CSV 教程](/python/csv/), [Tkinter 教程](/tkinter/), [SymPy 教程](/python/sympy/), [Python Pillow 教程](/python/pillow/), [Matplotlib 教程](/python/matplotlib/)和 [Python 教程](/lang/python/)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看