3: 2016-12-04 (日) 08:14:36 njf |
現: 2016-12-29 (木) 13:46:46 njf |
| 仕事などのデータをExcelやGoogleスプレッドシートなどでいただくことが多くあります。数百行ぐらいならそのまま使えますが、数千行とかになるとなかなか管理が難しくなってきます。 | | 仕事などのデータをExcelやGoogleスプレッドシートなどでいただくことが多くあります。数百行ぐらいならそのまま使えますが、数千行とかになるとなかなか管理が難しくなってきます。 |
| | | |
- | 毎回マクロなどで対応するのも大変なので、CSVに書き出ししてPythonでsqliteなどのデータベースに入れて管理すしたりしています。するとSQLが使えるので、集計などが自動化でき、かつ高速です。 | + | 毎回マクロなどで対応するのも大変なので、CSVに書き出ししてPythonでsqliteなどのデータベースに入れて管理したりしています。するとSQLが使えるので、集計などが自動化でき、かつ高速です。 |
| | | |
| 特にGoogleスプレッドシートの場合は、権限によってはCSVでダウンロードするところからPythonで処理することも可能なので、表示の重い画面を開かずに更新の有無などをチェックできて、管理するのがとても楽になります。 | | 特にGoogleスプレッドシートの場合は、権限によってはCSVでダウンロードするところからPythonで処理することも可能なので、表示の重い画面を開かずに更新の有無などをチェックできて、管理するのがとても楽になります。 |
| | | |
- | 以下で簡単にPython2.7でのCSV処理についてまとめます。 | + | 以下でそんな時に必要となるPython2.7でのCSV処理について簡単にまとめます。 |
| | | |
| *CSVファイルの読み込み [#rf8c79ef] | | *CSVファイルの読み込み [#rf8c79ef] |
| | | |
- | まず以下のテストファイルを「test.csv」とう名前で用意したとします。 | + | まず以下のテストファイルを「test.csv」という名前で用意したとします。 |
| | | |
| ID,name,comment | | ID,name,comment |
| | | |
| import csv | | import csv |
| + | |
| f = open("test.csv") | | f = open("test.csv") |
| + | |
| csvData = csv.reader(f) | | csvData = csv.reader(f) |
| + | |
| for row in csvData: | | for row in csvData: |
| print row[0],row[1],row[2] | | print row[0],row[1],row[2] |
| + | |
| f.close() | | f.close() |
| | | |
| | | |
| import csv | | import csv |
| + | |
| with open('test.csv', 'rb') as f: | | with open('test.csv', 'rb') as f: |
| reader = csv.reader(f) | | reader = csv.reader(f) |
| f = codecs.open("test.csv", 'r', 'utf_8') | | f = codecs.open("test.csv", 'r', 'utf_8') |
| csvData = csv.reader(f) | | csvData = csv.reader(f) |
| + | |
| for low in csvData: | | for low in csvData: |
| print low[0],type(low[1]),low[2] | | print low[0],type(low[1]),low[2] |
| + | |
| f.close() | | f.close() |
| | | |
| inFile = open("test.csv", 'r') | | inFile = open("test.csv", 'r') |
| outFile = open('test_out.csv', 'w') | | outFile = open('test_out.csv', 'w') |
| + | |
| csvData = csv.reader(inFile) | | csvData = csv.reader(inFile) |
| + | |
| writer = csv.writer(outFile) | | writer = csv.writer(outFile) |
| + | |
| for row in csvData: | | for row in csvData: |
| writer.writerow(row) | | writer.writerow(row) |
| + | |
| inFile.close() | | inFile.close() |
| outFile.close() | | outFile.close() |
| | | |
| inFile = open("test.csv", 'r') | | inFile = open("test.csv", 'r') |
| + | |
| outFile = open('test_out.csv', 'w') | | outFile = open('test_out.csv', 'w') |
| + | |
| csvData = csv.reader(inFile) | | csvData = csv.reader(inFile) |
| + | |
| writer = csv.writer(outFile) | | writer = csv.writer(outFile) |
| writer.writerows(csvData) | | writer.writerows(csvData) |
| + | |
| inFile.close() | | inFile.close() |
| outFile.close() | | outFile.close() |