トップ 差分 一覧 ping ソース 検索 ヘルプ PDF RSS ログイン

Python 書式


RSS 無料英単語

目次



記事一覧

キーワード

Python 書式

[Python][書式]


 文字列フォーマット

フォーマット文字列 % (差し込みオブジェクトのタプル)

コード 対応型
%s 文字列(数値なども変換)
%d 10進整数
%f 10進浮動小数点数
%x 16進数
%X 16進数(大文字)
%o 8進数
%% %を表示

精度、桁数

%[フラグ][桁数][.精度]コード
フラグ 意味
0 0埋め
- 値の左寄せ
+ 数値の先頭に符号をつける
>>> t = 173
>>> w = 73
>>> print 'あなたのBMIは、%0.1f です。' % (w / ((t/100.0)*2))
あなたのBMIは、21.1 です。

 辞書のキーを指定した埋め込み

%(辞書のキー)コード

>>> print '%(donuts)s、%(remon)s' % {'donuts':'ドはドーナツのド','remon':'レはレモンのレ'}
ドはドーナツのド、レはレモンのレ

 日付の書式設定

>>> time.strftime('%Y/%m/%d', time.localtime())
'2010/02/24'
>>> datetime.today().strftime('%Y%m%d')
'20100224'
>>> datetime.fromtimestamp(os.stat(r'/test.txt').st_ctime).strftime('%Y%m%d')
'20090824'


指定子 意味 備考
%a ロケールの短縮された曜日名を表示します
%A ロケールの曜日名を表示します
%b ロケールの短縮された月名を表示します
%B ロケールの月名を表示します
%c ロケールの日時を適切な形式で表示します
%d 月中の日にちを10進表記した文字列 [01,31] を表示します
%f マイクロ秒を10進表記した文字列 [000000,999999] を表示します (左側から0埋めされます) (1)
%H 時 (24時間表記) を10進表記した文字列 [00,23] を表示します
%I 時 (12時間表記) を10進表記した文字列 [01,12] を表示します
%j 年中の日にちを10進表記した文字列 [001,366] を表示します
%m 月を10進表記した文字列 [01,12] を表示します
%M 分を10進表記した文字列 [00,59] を表示します
%p ロケールの AM もしくは PM を表示します (2)
%S 秒を10進表記した文字列 [00,61] を表示します (3)
%U 年中の週番号 (週の始まりは日曜日とする) を10進表記した文字列 [00,53] を表示します新年の最初の日曜日に先立つ日は 0週に属するとします (4)
%w 曜日を10進表記した文字列 [0(日曜日),6] を表示します
%W 年中の週番号 (週の始まりは月曜日とする) を10進表記した文字列 [00,53] を表示します新年の最初の月曜日に先立つ日は 0週に属するとします (4)
%x ロケールの日付を適切な形式で表示します
%X ロケールの時間を適切な形式で表示します
%y 世紀なしの年(下2桁)を10進表記した文字列 [00,99] を表示します
%Y 世紀ありの年を10進表記した文字列を表示します
%z UTCオフセットを +HHMM もしくは -HHMM の形式で表示します (オブジェクトがnaiveであれば空文字列) (5)
%Z タイムゾーンの名前を表示します (オブジェクトがnaiveであれば空文字列)
%% 文字 '%' を表示します

  1. strptime() メソッドと共に使われた場合、 %f 指定子は 1 桁から 6 桁の数字を受け付け、右側から 0 埋めされます。 %f は C 標準規格の書式セットに拡張されます。
  2. strptime() メソッドと共に使われた場合、 %p 指定子は出力の時間フィールドのみに影響し、 %I 指定子が使われたかのように振る舞います。
  3. 範囲は 0 から 61 で正しいです; これはうるう秒と、 (極めて稀ですが) 2秒のうるう秒を考慮してのことです。
  4. strptime() メソッドと共に使われた場合、 %U と %W 指定子は、年と曜日が指定された場合の計算でのみ使われます。
  5. 例えば、 utcoffset() が timedelta(hours=-3, minutes=-30) を返すとしたら、 %z は文字列、 '-0330' で置き換えられます。

Python3



YAGI Hiroto (piroto@a-net.email.ne.jp)
twitter http://twitter.com/pppiroto