2012-05-31 9 views
35

フィールド間に固定の位置を持つ固定サイズの書式付き文字列を作成したいと思います。例はここに、より良い説明して3つの異なるフィールドが明らかに存在していると、文字列は固定サイズである:Pythonで固定サイズの書式設定された文字列を作成するにはどうすればよいですか?

XXX  123 98.00 
YYYYY  3 1.00 
ZZ   42 123.34 

がどのように私はPythonの(2.7)に文字列に、このような書式設定を適用することができますか?

答えて

80

確かに.formatメソッドを使用してください。例えば、

print '{:10s} {:3d}  {:7.2f}'.format('xxx', 123, 98) 
print '{:10s} {:3d}  {:7.2f}'.format('yyyy', 3, 1.0) 
print '{:10s} {:3d}  {:7.2f}'.format('zz', 42, 123.34) 

は、必要に応じて、あなたは、フィールドのサイズを調整することができます

xxx  123 98.00 
yyyy   3  1.00 
zz   42 123.34 

を印刷します。 .formatは、printから独立して動作し、文字列を書式設定することに注意してください。私は文字列を表示するためにprintを使いました。簡単な説明:

10sフォーマットデフォルト

3d形式3つのスペースを確保する整数によって正当化左10個のスペースの文字列を、右7スペースを確保し、デフォルト

7.2fフォーマットフロートによって正当化、小数点の後に2、 デフォルトでは右寄せ。

位置/フォーマット文字列には多くの追加オプションは、(左パディングは、/右などを正当化)があり、String Formatting Operationsは、より多くの情報を提供します。

+2

まさに私が探していたものです、ありがとう! – anio

+4

注: '7.2f'は2の精度を強制しますが、7はちょうど_minimum_幅です。書式を覚えていない入力の場合は、幅が7にならないことがあります。 12345.7は7文字であっても '' {:7.2f} ''の書式(12345.7) 'の幅は8です。 – jkmacc

+0

@jkmacc良い点、明示的にこれを述べてくれてありがとうございます、同様にトップ#4で、これはより明示的/簡単です:) – Levon

関連する問題