pythonにはサードパーティライブラリpandasがあるので便利に処理できますが、 今回はPythonの標準ライブラリのcsvモジュールを使って
CSVファイルの読み込み⇒処理⇒結果をCSVに書き込む
というフローをコピペで使える形で紹介します。
早速コードから行きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import csv #読み込み用のcsvを読み込む csv_file = open("読み込む.csv", "r", encoding="ms932", errors="", newline="" ) f = csv.reader(csv_file, delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True) #一行目をスキップ・ヘッダー読み込み header = next(f) #書き込み用のcsvを読み込む with open('書き込む.csv', 'w', encoding='shift_jis') as csv_file2: writer = csv.writer(csv_file2, lineterminator='\n') #ヘッダー書き込み writer.writerow(header) for row in f: ck = row[0] item_num = row[1] souko = row[2] #処理の部分 if souko == 0: souko = 1 else: souko = '0' #処理の部分 writer.writerow([ck,item_num,souko]) |
「読み込む.csv」を読み込んで「処理」をして「書き込む.csv」を結果に書き込むプログラムです。
そしてこの 「読み込む.csv」を例として読み込みます。
コントロールカラム | 商品管理番号(商品URL) | 倉庫指定 |
u | python00001 | 1 |
u | python00002 | 0 |
u | python00003 | 1 |
u | python00004 | 1 |
u | python00005 | 1 |
u | python00006 | 0 |
u | python00007 | 0 |
u | python00008 | 0 |
u | python00009 | 1 |
#処理の部分では
倉庫指定 を1なら0、それ以外なら1に書き換えるので真逆の結果が「書き込む.csv」として出力されます。
コントロールカラム | 商品管理番号(商品URL) | 倉庫指定 |
u | python00001 | 0 |
u | python00002 | 1 |
u | python00003 | 0 |
u | python00004 | 0 |
u | python00005 | 0 |
u | python00006 | 1 |
u | python00007 | 1 |
u | python00008 | 1 |
u | python00009 | 0 |
これだけでは0と1を入れ替えるだけで意味はありませんが、 処理の部分 を変更することで色々なプログラムにすることが出来ます。
是非いろいろなものを作ってみて下さいね!
最高の6ヶ月!超実践型プログラミングスクール【.pro】