質問: header.replace('\n', '\n' + comments) 1417 fh.write(comments + header + newline) TypeError: object of type '_io.BufferedReader' has no len() ### やってみたこと np.savetxtでCSV出力を試みました。 1行目にwavファイル名が来るように"header=wavfile"としたところ、上記のエラーとなりました。 ### 補足情報 python3.7.4 windows10
回答: 根本的な問題として、提示コードでは`for`ループ毎に同じ`amp.csv`に書込みしているので最後の内容しか書き込めていません。 まずは以下のように別ファイルに書き込むようにしてみてはいかがでしょうか? ``` import glob #globモジュールを宣言 import os import numpy as np for i, file in enumerate(glob.glob("*.wav")): # 出力CSVファイル名 csv_path = os.path.splitext(os.path.basename(file))[0] + '.csv' # 元のファイル名をそのままつける場合 csv_path = f'{i+1:03}' + '.csv' # 単に連番でいい場合 : np.savetxt( csv_path, amp, fmt="%.0f",delimiter=",") ``` なお、データを縦方向(列毎)に持たせるのはあまりよろしくないかと思います。 一般的には横方向(行毎)に持たせるほうがのちのデータ分析が楽です。