Python 2.7では、文字列形式のテンプレートを使用してdatetimeオブジェクトを出力したいと考えています。なんらかの理由で、左揃えと右揃えを使用しても文字列が正しく表示されません。日時文字列形式の整列
import datetime
dt = datetime.datetime(2013, 6, 26, 9, 0)
l = [dt, dt]
template = "{0:>25} {1:>25}" # right justify
print template.format(*l) #print items in the list using template
これが発生します。その代わり
2013-06-26 09:00:00 2013-06-26 09:00:00
の
>25 >25
は、文字列形式のテンプレートを使用してDateTimeオブジェクトの印刷を行うにはいくつかのトリックはありますか?
私がSTR()にdatetimeオブジェクトを強制するときに動作するようですprint template.format(str(l[0]), str(l[1]))
私はむしろ、私は、そのうちのいくつかを値のリストを印刷しようとしているので、それを行う必要はありませんと思います文字列ではありません。文字列テンプレートを作成する全体のポイントは、リスト内の項目を印刷することです。
私は文字列の書式について何か不足していますか、これは誰にもPythonバグのようですか?
SOLUTION
@mgilsonは、私はドキュメントで逃したソリューションを指摘しました。値に )さん!」STRを呼び出す(、および()はreprを呼び出しては 'r!':link
2つの変換フラグが現在サポートされています。
いくつかの例:
"Harold's a clever {0!s}" # Calls str() on the argument first
"Bring out the holy {name!r}" # Calls repr() on the argument first
私はおとなしいでしょう。それがまさに私が必要としていたものです。 これについてはドキュメントの1行が見つかりませんでした。 [link](http://docs.python.org/2/library/string.html#format-string-syntax) 現在、2つの変換フラグがサポートされています: '!s'は値に対してstr()を呼び出します。 、およびrepr()を呼び出す '!r'。_ –
@MarcelWilson - 私はそれを探しに行くまで、これについては知らなかった。 – mgilson