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 メープルレーン デトロイト ミシガン州

キッズプレイス 333 South Lake Drive コロンバス オハイオ州

Fun4All 1 サニー プレイス マンシー イン

Fun4All 829 リバーサイド ドライブ アリゾナ州フェニックス

おもちゃ屋 4545 53rd Street シカゴ 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 に答える