0

我正在从 MySQL 数据库中读取数据并希望将其打印到屏幕上。

我用:

import MySQLdb
conn = MySQLdb.connect(host='localhost',user='root',passwd='passwd',db='test',charset='utf8')
cursor = conn.cursor()
cursor.execute('select cust_name,cust_address,cust_city,cust_state from Customers')
numrows = int(cursor.rowcount)
for i in range(numrows):
    row =  cursor.fetchone()
    print "%s  %s  %s   %20s" %(row[0],row[1],row[2],row[3])
cursor.close()
conn.close()

结果是这样的:

Village Toys 200 Maple Lane Detroit MI

Kids Place 333 South Lake Drive Columbus OH

Fun4All 1 Sunny Place Muncie IN

Fun4All 829 Riverside Drive 凤凰城

玩具店 4545 53rd Street Chicago IL

我怎样才能使它左对齐?

4

2 回答 2

1

假设您只想对齐最后一列,请这样做:

print "%s  %s  %s   %-20s" %(row[0],row[1],row[2],row[3])

- 号将其-向左对齐。

于 2012-10-25T06:39:38.617 回答
0

此外,Python 中还有一种新的格式化语法

据我了解,您希望每一列都有相同的缩进。这可以通过指定每列应占用的空间来实现。因为现在前 3 个字符串尽可能少地消耗目标字符串,只有最后一个字符串占用 20 个符号。如果您指定每个字符串的长度,您将在结果字符串中得到良好对齐的输出。

尝试这个:

print('{row[0]:20}{row[1]:20}{row[2]:20}{row[3]:20}'.format(row=row))

20花括号中的数字表示每个字段的长度。

于 2012-10-25T06:50:01.660 回答