from prettytable import PrettyTable
header="????,??,????".split(",")
x = PrettyTable(header)
x.align["????"]="l"
table='''HuangTianhui,?,1948/05/28
???,?,1952/03/27
???,?,1994/12/09
LuiChing,?,1969/08/02
???,?,1982/03/01
???,?,1983/08/03
YangJiabao,?,1988/08/25
????·???,?,1979/07/10
???,?,1949/10/20
???(??),?,2011/02/25
(??????),?,1985/07/20
'''
data=[row for row in table.split("\n") if row]
for row in data:
x.add_row(row.strip().split(","))
print(x)
Run Code Online (Sandbox Code Playgroud)

我想要的输出格式如下.

在这个例子中,prettytable.py无法显示字符的正确中国暧昧宽度 ·在 ????·??? ,则字符含糊的宽度.如何修复prettytable.py中的错误?
我在prettytable.py的def _char_block_width(char)中添加了两行,但问题仍然存在.
if char == 0xb7:
return 2
Run Code Online (Sandbox Code Playgroud)
我已经解决了,文件prettytable.py应该安装在我的电脑d:\ python33\Lib\site-packages中directly not in as the form of d:\python33\Lib\site-packages\prettytable\prettytable.py
有很多中文字符宽度不明确,我们添加两行如下来修复bug是愚蠢的,如果有50个不明确的字符,在prettytable.py中会添加100行,有没有简单的方法要做到这一点?只修一些线来对待所有模棱两可的角色?
if char == 0xb7:
return 2
Run Code Online (Sandbox Code Playgroud) 我有一个生成多个表的脚本,这些表都具有相同的列名和非常相似的数据.到目前为止,我一直在通过在它之前打印标题使每个表独特,即:
print("Results for Method Foo")
#table 1
print("Results for Method Bar")
#table 2
Run Code Online (Sandbox Code Playgroud)
等等.但那不是很漂亮..
虽然它看起来像一个明显的用例,但我无法找到做这样的事情的选项:
有关如何实现这一目标的任何想法?
万一它很重要:我使用的是python 3.4,带有virtualenv和漂亮版本0.7.2
我是Python编程的新手,使用Python 3.x,并且正在使用理发店POS系统,管理员将有权添加服务及其相应的价格.我正在使用Pretty Table库来实现打印带有serviceID,服务和价格的表格.
这是我的代码:
from prettytable import PrettyTable
import random
serviceID = []
services = []
price = []
x = PrettyTable()
x.add_column("ServiceID",[serviceID])
x.add_column("Service", [services])
x.add_column("Price", [price])
while True:
try:
ID = random.randint(1,90000) #range high to lower probability of non-uniqueness
serviceID.append(ID) #Generates unique ID for each service
prompt1 = input("Please add a service name to the list\n")
services.append(prompt1)
prompt2 = input("Please enter a price for the service\n")
prompt2 == int(prompt2)
price.append(prompt2)
print(x)
except ValueError:
print("Please enter valid type")
continue
Run Code Online (Sandbox Code Playgroud)
当我输入第一个服务和Price时,输出为: …
我正在使用PrettyTable以漂亮的表格格式将数据打印到终端.通过单列打印它非常容易.
from prettytable import PrettyTable
table = PrettyTable(["Name", "Grade"])
table.add_row(["Joe", 90])
table.add_row(["Sally", 100])
print table.get_string(sortby="Grade", reversesort=True)
>> Table with Sally on top, because her score is highest.
Run Code Online (Sandbox Code Playgroud)
我的麻烦是我想对两列进行排序.在这个代理案例中,我想按年级打印,然后按字母顺序打印,如果有平局.
table = PrettyTable(["Name", "Grade"])
table.add_row(["Joe", 90])
table.add_row(["Sally", 100])
table.add_row(["Bill", 90])
print table.get_string(sortby=("Grade","Name"), reversesort=True)
>> Doesn't work
Run Code Online (Sandbox Code Playgroud)
文档说sort_key将允许我编写一个函数来完成这个,但我还没有看到一个实际的实现来解决.
我不确定如何绘制如下表,我尝试使用prettytable但无法在一个单元格中放置多行。
注意:行数应基于字符串的数目,因此我想在每行中放置一些n字符串。
有人可以帮忙吗?
+---- +-------------------+-------------------------------------------------------+
| Id | Name | Comment |
+-----+-------------------+-------------------------------------------------------+
| 1 | Alvina Skiles | Dolor qui rerum est sed. Sed ipsa repudiandae et |
| | | Non explicabo voluptas impedit rerum dignissimos. |
| | | Minima voluptatibus sint voluptates similique.' |
+-----+-------------------+-------------------------------------------------------+
| 2 | Chasity Lakin | Nesciunt ea voluptatem rerum eos rerum ut soluta |
| | | Animi totam rerum fugiat consectetur odio et |
| | | repellendus | …Run Code Online (Sandbox Code Playgroud) 每当我在 nodejs 中运行 index.js 时,我都会收到此错误消息。
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/sync' is not defined by "exports" in D:\Scuola\5f_Informatca\Tpsit\Telegram\node_modules\csv-parse\package.json
at new NodeError (node:internal/errors:371:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:453:9)
at packageExportsResolve (node:internal/modules/esm/resolve:729:3)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (D:\Scuola\5f_Informatca\Tpsit\Telegram\node_modules\prettytable\prettytable.js:1:13)
at Module._compile (node:internal/modules/cjs/loader:1103:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (D:\Scuola\5f_Informatca\Tpsit\Telegram\index.js:3:21)
at Module._compile (node:internal/modules/cjs/loader:1103:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1155:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load …Run Code Online (Sandbox Code Playgroud) 我正在使用漂亮的表格来生成表格输出。
是否可以根据颜色生成。如果失败,它应该显示为红色,正常它应该显示为绿色。
代码:
from prettytable import PrettyTable
a = "ok"
b = "Failed"
t = PrettyTable(['Input', 'status'])
if a == "ok":
t.add_row(['FAN', a])
else:
t.add_row(['FAN', b])
print t
Run Code Online (Sandbox Code Playgroud) 所以我使用库'prettytable',并且能够在执行时获得我的数据表.但是,我不知道如何将其保存到文件中.理想情况下,我希望将表格保存为pdf,以便将其用于我的报告.
以下是来自漂亮网页本身的示例代码:
from prettytable import PrettyTable
x = PrettyTable(["City name", "Area", "Population", "Annual Rainfall"])
x.align["City name"] = "l" # Left align city names
x.padding_width = 1 # One space between column edges and contents (default)
x.add_row(["Adelaide",1295, 1158259, 600.5])
x.add_row(["Brisbane",5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])
print x
Run Code Online (Sandbox Code Playgroud)

使用nicetable时是否可以获得特定单元格的值?
我有以下代码来遍历一个简单表的所有行.
from prettytable import PrettyTable
table = PrettyTable(["Column 1", "Column 2", "Column 3"])
table.add_row(["A", "B", "C"])
table.add_row(["F", "O", "O"])
table.add_row(["B", "A", "R"])
for row in table:
print(row)
Run Code Online (Sandbox Code Playgroud)
此示例打印以下3个表:
+----------+----------+----------+
| Column 1 | Column 2 | Column 3 |
+----------+----------+----------+
| A | B | C |
+----------+----------+----------+
+----------+----------+----------+
| Column 1 | Column 2 | Column 3 |
+----------+----------+----------+
| F | O | O |
+----------+----------+----------+
+----------+----------+----------+
| Column 1 | Column 2 | Column …Run Code Online (Sandbox Code Playgroud) 所以,我有一张桌子(PrettyTable),我想让它们尽可能宽。例如,第一列的宽度应为 5px,第二列的宽度应为 18px,依此类推...我该怎么做?
prettytable ×10
python ×8
python-3.x ×3
datatable ×1
json ×1
node.js ×1
npm ×1
numpy ×1
python-2.7 ×1
r ×1
sorting ×1
telegram-bot ×1