毎回、同じようにつまづいて、同じような感じで対応してます。
なので、いいかげん自分に判りやすいようにまとめておきます。
日本語対応といっても、ソースコード中に日本語を書くつもりはありません。
データはYAML形式のファイルで用意。
そして、YAML形式データファイル中の文字列を、UTF-8で日本語に置き換えようとして、 毎回「うぅっ」とうなってます。
Python2 では日本語を含む文字列は .encode('utf-8')して UTF-8 で保持。
Python3 では日本語の有無に関係なく、素直にstrのままでよし。
Python2 では素直に sys.stdin/sys.stdout を read/write。
Python3 では sys.stdin.buffer , sys.stdout.buffer を使う。
Python2 の世界には .buffer は存在しないので
注意。
$ cat p2.py
#!/usr/bin/env python2
import sys
import yaml
if __name__ == "__main__":
s = sys.stdin.read()
d = yaml.load(s)
foo = d.get('foo')
bar = d.get('bar')
d['hoge'] = foo + ' ' + bar
d['fuga'] = 'foo={} bar={}'.format(foo, bar)
d['guha'] = '(^_^)'.join( d.values() )
s = yaml.dump(d, default_flow_style=False)
sys.stdout.write(s)
# EOF
ここはデフォルトp
ここは明示的にp
バージョン2のための パッチ となります。
これは pythonのモジュールのインポート について。
ここはpre p ここもpre h1 ここもpre
ここはp
---
ここは暗黙のp
---
ここはp
ここはpre