実現したいこと
異なるフォルダにある複数のCSVファイルを読み出し、配列に格納したいです(本当はその先に、それらの配列を使ってMatplotlibでグラフを描画したい)。この質問では、配列に格納するところまでを質問の対象とさせてください。
処理対象のCSVフォーマット
ファイルは全てCSV形式で共通です。具体的には、以下のように、各行に3つの数値がカンマで区切られています。行数はファイルによって異なります。データは左から、周波数(変数名:freq)、抵抗A(変数名:ReA)、抵抗B(変数名:ReB)、の順で並んでいます。
1037,534,823
984,345,923
589,473,253
769,512,458
###環境
Windows10 Pro (version 1909)
Python (version 3.8.3)
Spyder (version 4.1.3)
###やったこと
python
1filename = ["c:\hoge\aaa.csv","c:\data\bbb.csv","c:\test\ccc.csv"] 2 3for k in range(len(filename)): 4 datalist = list() 5 freq = list() 6 ReA = list() 7 ReB = list() 8 9 fp = open(filename[k], mode="r", encoding="cp932") 10 datalist[k] = fp.readlines() 11 12 for i in range(len(datalist[k])): 13 freq_value[k][i], ReA_value[k][i], ReB[k][i] = datalist[k][i].rstrip().split(",") 14 freq[k].append(int(freq_value[k][i])) 15 ReA[k].append(int(ReA_value[k][i])) 16 ReB[k].append(int(ReB_value[k][i])) 17 fp.close()
出力されるエラー
実行すると、
datalist[k] = fp.readlines()
の行でエラーが発生します。その理由は、
list assignment index out of range
と出ます。ググると、「存在しない要素にアクセスしようとしているから」とあります。
k値は0,1,2と明確になっていると思うのですが、何が間違っているのでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。