我正在从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 Phoenix AZ The Toy Store 4545 53rd Street Chicago IL
我怎样才能让它合理化?
答案 0 :(得分:1)
假设您只想对齐最后一列,请按以下步骤操作:
print "%s %s %s %-20s" %(row[0],row[1],row[2],row[3])
-
- 符号证明它在左边。
答案 1 :(得分:0)
此外,Python中有a new formatting syntax。
据我了解,您希望每列都有相同的缩进。这可以通过指定每列应占据的空间来实现。因为现在前3个字符串尽可能少地消耗目标字符串,并且只有最后一个字符串需要20个符号。如果指定每个字符串的长度,则会使得到的字符串中的输出很好地对齐。
试试这个:
print('{row[0]:20}{row[1]:20}{row[2]:20}{row[3]:20}'.format(row=row))
花括号中的数字20
表示每个字段的长度。