Make it possible with Python.

最近Pythonから離れ気味、その他物作りに寄り気味です。

Python勉強記録 20140415

1つのスクリプトを書く中で、わからないことが毎回山ほど出てくる・・・。

でも、力業でバグ回避はできるようになった。時間さえあれば動くコードが作れる。

時間を書ければ作れるので、仕事効率化に使えるようになった。

ただしコード改善の時間がないので、わからないことは週末に調べられるようにメモ。

やったこと

サブフォルダ含めある命名規則を持つCSVファイル数百個を読み込んで、ファイル名ごとに、 中の特定列を別のシートにコピペするスクリプト。

学んだこと

  • glob.glob('/.csv') でサブフォルダ内全ファイル。[]などワイルドカードもいくつか使える。

  • str[10:15] で文字の一部を抜き出せる。

  • リストをCSVにしたければ、とりあえずこれを書けばいい。入れ子だったらこれをforで繰り返す。

        output_csv.write(",".join(list))
        
        output_csv.write("\n")

解決すべきこと

  • csvモジュールでネストされたリストの保存の仕方がわからない  csv.writeの意義がわからない。

  • 関数から、global変数を呼ばずに複数の変数を書き換える方法(複数のreturnを返す方法?)がわからない

  • Spyder内で日本語の文字化け。

  • 日本語を含むデータの文字コードの扱い。"rb"とかcodecsとか"cp932"とかどういうときに必要?

  • バグの確認の仕方。極値や境界の条件を確認するといい?

  • 開いたCSVオブジェクトについてforループを回す処理を、さらにforループすると2回目にオブジェクトが空になる?  ファイルオブジェクトから一度閉じて開き直したら回せたので、今は同じコートが2回書いてある・・・。

誰かヒントなどくれると嬉しいです。