お世話になっております。pythonにおいて、複数ファイルから文章を読み込み、各ファイル毎に変数に格納した後、それらの結合を行いたいのですがpythonにおける文字の結合方法が分からずに困っております。
現在、
python
1for line in open("filelist",'r'): 2 line = line.replace('\n','') 3 f =open("data/%s/data" %line,'r') 4 d = f.read() 5 data = eval(d) 6 #ここに結合するコードを追加したい
といった形で変数dataに文章を格納しているのですが、ファイルを読み込むごとにdataを結合させるというのが目的です。
数値計算のように変数を設けて
whole_data += data
などとしても文章の結合は行えるのでしょうか?
ご教授よろしくお願い申し上げます。
まずは whole_data += data を試してみましょう。
whole_data += data を実行した結果はどうでしたか?
cannot concatenate 'str' and 'list' object
というエラーが発生しました。
whole_dataが文字列型であるのに読み込んだファイルの型がリストとなっているのが問題のようです。
dではなく、dataを連結してたんですね。dataはevalしているので文字列でなくなっている可能性があります。ファイルはどんな内容のファイルなんでしょう?
では、whole_data += str(data) とすればいいかと思います。お望みの結果になるかどうかは分かりませんが。
ありがとうございます、ファイルは
numpy.array[0,1,2,3...]
numpy.array[4,5,6,7...]
...
といったnumpy配列が各行に並んだものとなっています。
なるほど。それで、お望みの結果はどういうものですか?
分割された上記の形式のファイルについて結合を行い、1つのデータにまとめた上で各行について計算処理を行おうと考えています。
試しにwhole_dataをリスト型にしてみたところ、少ないファイル数でなら実行することができました。
ただ、多数のファイルでも適用できるか不明なため、試してみます。