課題への挑戦
初めてのPythonが本棚の肥やしと化している…でもパソコン部屋が寒すぎて、遊んでたら間違いなく風邪を引く。
こたつでMac サイコー
コード
#!/usr/bin/python import csv master = csv.reader(file('master.csv', 'r')) code = csv.reader(file('code.csv', 'r')) for m in master: for c in code: if m[0] == c[0]: print ','.join(m), ',', ','.join(c)
Ruby の教訓はもちろん生かさない。
まぁ2重ループの練習ってことで。
実行してみる
$ ./convCsv.py 123,aaa,bbb , 123,test2,test_test,test5 $
ぉおう?!最初の配列がループしないで終わった…
こうでした
コード
#!/usr/bin/python import csv for m in csv.reader(file('master.csv', 'r')): for c in csv.reader(file('code.csv', 'r')): if m[0] == c[0]: print ','.join(m), ',', ','.join(c)
実行結果
$ ./convCsv.py 123,aaa,bbb , 123,test2,test_test,test5 456,iii,jjj , 456,test4,test_test,test3 789,kkk,mmm , 789,test6,test_test,test1 123,ccc,ddd , 123,test2,test_test,test5 123,eee,fff , 123,test2,test_test,test5 111,ggg,hhh , 111,test1,test_test,test6
無意識にファイルアクセスを減らそうとした結果がこれだよ。
どうも csv.reader() で読み出した配列って、1回ループするとクリアされてしまうのかな?
回避策はありそうだけどおいおい勉強する方針。
ruby とかpython はコードがスッキリかけて良いですね☆型とかぜんっぜんわかってないオイラには非常に敷居が高いですが…