Python PrettyTable在同一行上打印表格
我正在使用PrettyTable“from_db_cursor”模块很好地打印我从sql请求中得到的响应。一切正常,我唯一的问题是,对于某些查询,我希望打印表,它们被附加到同一行,如下所示:Python PrettyTable在同一行上打印表格,python,python-2.7,mysql-python,prettytable,Python,Python 2.7,Mysql Python,Prettytable,我正在使用PrettyTable“from_db_cursor”模块很好地打印我从sql请求中得到的响应。一切正常,我唯一的问题是,对于某些查询,我希望打印表,它们被附加到同一行,如下所示: countUnivers1: countUnivers2: countUnivers3: +----------+ +----------+ +----------+ | COUNT(*) | | COUNT(*) | | COUNT(*) | +----
countUnivers1: countUnivers2: countUnivers3:
+----------+ +----------+ +----------+
| COUNT(*) | | COUNT(*) | | COUNT(*) |
+----------+ +----------+ +----------+
| 1681943 | | 51954 | | 4140984 |
+----------+ +----------+ +----------+
但我无法找到如何做到这一点,这里是我目前使用的代码:
i = 0
tables = []
with open(output, 'w+') as file:
file.write(str(current_time) + '\n')
for query in QUERIES.items():
cur.execute(query[1])
table = from_db_cursor(cur)
if not re.search('countUnivers' ,query[0]):
file.write('\n' + query[0] + ':\n')
file.write(str(table) + '\n')
else:
if i < 6:
file.write(query[0] + ':\t')
tables.append(str(table))
i += 1
elif i == 6:
file.write('\n')
for t in tables:
file.write(str(table) + '\t')
i = 0
tables = []
file.write('\nDatabase:\n' + json.dumps(dbParams, indent=4) + '\n')
这里的查询是一个ORDERDICT,其中包含SQL请求:
('countUnivers1', "SELECT COUNT(*) \
FROM ourson_offer o \
WHERE o.cat LIKE '1%' \
AND CHARACTER_LENGTH(o.cat) = 7"),
就像这个。文本是二维的:行+行中的字符。“table”是一个python字符串,其中有新行-它是一个文本!每行结束字符(CRLF、CR或LF,具体取决于操作系统/平台)后,将开始一个新行 您想要做的是将字符串的结构理解为文本并垂直对齐新块
def pad_垂直线(线、尺寸):
''长度正好为'size'的行列表。
如果需要,用空行扩展。
'''
原始行=列表(行)
断言大小>=len(原始行)
返回原始行+['']*(大小-长度(原始行))
def衬垫管路水平(管路):
''将线路连接到最长线路的长度。
'''
直线长度=最大值(对于直线中的直线,长度(直线))
返回[
line.ljust(行长度)
排队
]
def text_add(text1,text2,padding=''):
lines1=text1.splitlines()
lines2=text2.splitlines()
行计数=最大值(len(行1),len(行2))
def pad_管路(管路):
水平返回焊盘线(
垂直焊盘线(线、线计数)
)
返回'\n'。加入(
“”.连接(第1行+填充+第2行)
对于拉链中的第1行、第2行(衬垫线(第1行)、衬垫线(第2行))
)
这样使用:
countUnivers1: countUnivers2: countUnivers3:
+----------+ +----------+ +----------+
| COUNT(*) | | COUNT(*) | | COUNT(*) |
+----------+ +----------+ +----------+
| 1681943 | | 51954 | | 4140984 |
+----------+ +----------+ +----------+
text1=''\
第1项:
+----------+
|计数(*)|
+-------
| 1681943 |
+----------+
'''
text2=''\
第2项:
+----------+
|计数(*)|
+----------+
| 51954 |
+----------+
加上
评论
'''
打印文本\u添加(文本1、文本2、填充='\t')
countUnivers1:countUnivers2:
+----------+ +----------+
|计数(*)| |计数(*)|
+------- +----------+
| 1681943 | | 51954 |
+----------+ +----------+
加上
评论