初めてのPython --CSV読み込み編--
こんばんは。
今日は目標の1に取り掛かります。
1.CSV処理をやってみる(読み込みから集計くらい?)
CSVファイルを用意
会社ならいくらでもあるCSVファイルですが、自前PCだと意外とない。
ということで、ぐぐって先頭にあったこちら。なんでもいいので、一番上にあったファイルを使います。
Shift-JISで大丈夫なんだろうかと思いつつ、そこは後で考えよう。。
お試しなので先頭50行だけ切り取ったファイルを作って使います。
CSVファイルを読み込む
参考にしたのはこちら。シンプルだったので。
え、、こんな簡単に?
コピペして、ファイルパスだけ変更して、readCSV.pyで保存。
import csv
import pprint
with open('data/c01_50.csv') as f:
print(f.read())
実行する。
・・・出来た。簡単すぎる。
文字コード指定して読み込む
あまりにも簡単だったので、文字コードの対応もやってみる。
公式ドキュメントを見ると、encodingだけ指定すれば良さそう。
やってみる。
with open('data/c01_50.csv', encoding='utf-8') as f:
print(f.read())
怒られた。
読み込めないと言っているので、コードは間違ってなさそう。
CSVファイルの文字コードをUTF-8に変更して保存し、再実行。
出来た。簡単。
引数の指定方法を調べる
リファレンスを見て気になったのが引数の指定方法。
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
これを見た感じ、第一引数は必須、第2以降はあってもなくてもよくて、順番も特に決まってなさそう。
でも別のページにはこんな記述もある。
with open('eggs.csv', 'w', newline='') as csvfile:
第二引数、何?!
modeを指してるんだろうけど、"mode="は?省略していいの??
推測としてはリファレンスの順番であれば省略してOK、そうじゃなければ名前も書いてね、ということかな??
実験!
正しい順序で名前なし→成功
間違った順序で名前なし→実行エラー
間違った順序で名前あり→成功
ということで、Pythonではリファレンスどおりの順番であれば省略してOK、そうじゃなければ名前も書いてねというルールのようです。
慣れない言語だと、リファレンスを読むことすら難しいということがわかりました。
(よく読めばどこかに書いてあるのかもしれませんが・・・)
今日はここまで。
次回は列ごとに読み込んだり出来るといいかなぁ。
この記事が気に入ったらサポートをしてみませんか?