3: 2016-12-04 (日) 08:14:36 njf[4] [5] [6] | 現: 2016-12-29 (木) 12:46:46 njf[4] [7] [8] | ||
---|---|---|---|
Line 3: | Line 3: | ||
仕事などのデータを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 | ||
Line 23: | Line 23: | ||
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() | ||
Line 43: | Line 43: | ||
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) | ||
Line 65: | Line 65: | ||
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() | ||
Line 107: | Line 107: | ||
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() | ||
Line 121: | Line 121: | ||
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() |
(This host) = https://njf.jp