08/06/07 14:44:12
>>210-211
確かに u"・・・" にすべきだった。指摘ありがとう。
一般論としては u"・・・" にする必要があるかどうかは文字列の中身に依る。
例えば u"・・・" ではなく "・・・" を使って日本語で
print >>stdout, '"総計","%s",%d' % (root, dirsize[root])
としたら % 演算子の処理のところで暗黙の string → unicode 変換が起こる。
ソースのエンコーディングと sys.getdefaultencoding() の値によってはエラーになるわけだ。
文字列の中身が ASCII 文字だけなら暗黙の変換が起こってもまず問題ない。
ただ、無駄な変換ではあるし、暗黙の自動変換を避ける方針でやりましょうと言ってる
わけだから、やはり u"・・・" にするのが妥当だ。
というわけで>>209を訂正:
誤: print >>stdout, '"total","%s",%d' % (root, dirsize[root])
正: print >>stdout, u'"total","%s",%d' % (root, dirsize[root])