省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

Keyデータをファイルから読み込むなら Stripせよ - PythonプログラミングTips

 先日Pythonで文字列処理のスクリプトを書いてハマりました。やろうとしていたのは、テキストファイルを読込み、そこから辞書型変数にテキストファイルからキーと、変数の内容を取り込もうとしたのでした。

 で辞書型変数にデータを取り込んだところまでは良いのですが、キーを指定してそれに対応するデータを取り出そうとすると、空振りします。キーを指定してもデータが取れだせないのです。おかしいと思って、辞書型変数のキーの一覧とデータの中身を書き出すと、ちゃんとキーはあります。あるのにキーを指定してもデータが取り出せないのです。

 で、さんざんああでもない、こうでもないとやった挙句にたどり着いた解決法は、キーを読み込む時に文字列に対して、Stripメソッドを掛けてからキーを辞書型変数に登録しなければならないということでした。

 ファイルから例えば 'ABC'というキーを読んだつもりでも、おそらく何か制御コードが入ってしまうということです。あるいはユニコードを示す制御コードかもしれません。だとすると'ABC'のつもりが実際には u'ABC'になっており、あとで、'ABC'というキーでデータを取り出そうとしても取り出せない... ということかもしれません。そこでStripメソッドで、uを外して'ABC'にして、キーとして読み込まなければいけない、ということのようです。

 仮に辞書型変数がdic、キーが入った変数をstrとすると

  dic[str.strip()] = 'data contents'

としなければいけないようです。

 これもPythonのベテランの方には常識かと思いますが、自分のための備忘録として...