notes の中身は確認してませんが、writerows の使い方は
python
1# with ステートメントで記述すると、close()は必要に応じて自動的に呼ばれます。
2
3with open("new.csv", "w", newline="") as f: # <- newline="" がないと空行が入ります
4 w = csv.writer(f)
5 w.writerows(notes)
6
文字列に変換可能でないと書き込めないので、
Note オブジェクトをどのように csv へ書き込むのか、
次にデータの変換が必要になると思います。
python
1## (1) ※rowsとrowの違いに注意。一行ずつ書き込み
2for note in notes:
3 w.writerow([note.start, note.end, note.pitch, note.velocity])
4
5## (2) writerows の場合
6w.writerows((note.start, note.end, note.pitch, note.velocity) for note in notes)
7
8## (3) 何度も note. と書きたくない場合
9from operators import attrgetter
10w.writerows(map(attrgetter("start", "end", "pitch", "velocity"), notes))
追記: 実行確認はしてないのでコピペの際は注意。w.writenow の追加位置確認用です。
python
1with open("new.csv", "w", newline="") as f:
2 w = csv.writer(f)
3 for note in notes:
4 w.writerow([note.start, note.end, note.pitch, note.velocity])
5
6 # XXX: w.writerows(notes) がエラー原因。理由は先述の通りデータの変換が必要
7
8# with open() ~では、
9# インデントで表現されたブロックの終端でファイルが閉じます。
10# ブロックの終端は、下の for 文でインデントがwith~と同じ位置に戻る箇所。
11
12for note in notes:
13 # ここでの w.writerow は、ファイルが閉じられてるので無効。
14 print(note)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/08 12:18
2020/05/08 12:30
2020/05/08 12:44
2020/05/08 12:56