Python内でクエリを実行してソート済み(OrderBy付き)の結果を取得し、それをソートでまとまった項目の値ごとにCSVファイルに振分けたいと思っていますがうまくいきません。
ひとつのCSVファイルに出力するだけなら、最初に出力CSVファイルをopenしてforで1行ずつ取ればよいのですが、振分けする場合はforの中でopenする必要があると考えており、これをやるとwriter.writerow(doc)でopen済みであるにもかかわらず
"ValueError: I/O operation on closed file."というエラーとなってしまいます。
どういうふうにすれば、うまく振り分けができるのでしょうか。
どなたかお分かりになる方がいらっしゃいましたら、アドバイスのほど、よろしくお願いいたします。
python
``` ## SQL実行 cursor.execute(exe_sql) ## 結果をCSVに出力 deviceid = "" lcnt = 0 mae = "" openf = False for doc in cursor: if openf == False: csv_name = "out_csvdata_{}.csv".format(doc[2]) with open(csv_name, mode="w", encoding="utf-8", newline='') as wf: writer = csv.writer(wf) mae = doc[2] openf = True ## CSV書込 writer.writerow(doc) if mae != doc[2]: openf = False
まだ回答がついていません
会員登録して回答してみよう