業務システムなど作っていると、CSV作成などで'00000013245'などの
固定長文字列を生成する場面が良くあります。
Pythonなら簡単です。
8文字の固定文字列を作る場合
>>aa = 3452
>>xx = ("00000000" + str(aa))[-8:]
>>print xx
00003452
>>
[-8:] というのは
「後ろから8文字目から(後ろから8文字目は含む)最後まで」
という意味です。
逆に
>>xx = ("00000000" + str(aa))[8:]
>>print xx
3452
>>
これは「前から8文字目から(8文字目は含まない)最後まで」
という意味です。
前からと後ろからで若干混乱気味になりますね(私はなるw)。
これは単にリストをスライスしているだけ(文字列もリストの一種)
ですので、普通のリストでも同じように出来ます。
--追記--
匿名さんからのコメントで以下の方法もあるよと指摘が。
print 3452.zfill(8)
print "%08d" % (3452)
print "%(num)08d" % {'num':3452}
そのものズバリの方法があるジャマイカ orz...
まったくもって勉強不足でございました。精進いたします!
プログラム言語・ソフトウェア・Webサービス・ガジェットetc...
2010年4月21日水曜日
登録:
コメントの投稿 (Atom)
Template Design: © 2007 Envy Inc.
他にもありそうだなと思って調べてみましたが以下のような感じはどうですか。
返信削除print 3452.zfill(8)
とか
print "%08d" % (3452)
とか
print "%(num)08d" % {'num':3452}
とか
匿名さん
返信削除むむむ、もっと簡単な方法があったとは。。。
精進します!