質問: ### 前提・実現したいこと コンマで区切られたテキストファイルを読み込んでCSVに書き込み出力するプログラムを作製したいです。 ### 発生している問題・エラーメッセージ 以下の内容を記載したテキストファイルを読み込みました。 この内容をそのままCSVとして出力したかったのですが、以下のコードを実行しエクセルでCSVを読み込んだところ、A列に1行分の文字がすべて入ってしまい、コンマで区切ることができませんでした。 また、何故か各行の最初にコンマが入ってしまっています。 以下、読み込んだテキストファイル(test.txt)、メモ帳で作成したファイルです。 No.,52 日付,2021/04/20 11:13:43 縦長さ [mm], 100 横長さ [mm], 100 縦横比, 1 データNo.,条件1,条件2 1,300,2 2,350,2 3,400,2 4,450,2 5,500,2 6,550,2 7,600,2 ### 該当のソースコード ``` with open("test.txt",'r',newline="",encoding="utf-8") as data1: lines=data1.readlines() print(lines) with open("test.csv","w",newline="",encoding="utf-16") as f: writer=csv.writer(f)#読み込んだデータをエクセルのセルで区切って表示する writer.writerow(lines) コード ``` ### 試したこと 読み込み方法(read(), readlines(),readline())や出力方法(writerow(), writerows())、csv.writer()でのデリミタ、read()で読み込んだテキストのsplit()等色々試してみましたが、上手くいきませんでした。 当方Pythonを使うのが初めてで、書籍やネット検索で解決策を探していましたが上手くいかなかったため、ここで質問させていただいた次第です。 よろしくお願い致します。 ### 補足情報(FW/ツールのバージョンなど) Jupyter Notebookを使用しています。
回答: test.txtの中身は既にcsvファイルです。 したがって、以下の方法でエクセルで読み込めます。 pythonを使わずにtest.txtの名前をtest.csvに変更する。 エクセルでtest.txtを開く。 なお、1行に入ってしまう理由は、writer.writerowの引数がリストである場合は、そのそれぞれがセルに入るためです。 練習問題としてやるなら、読みこんだ各行を','でsplitして、各行ごとにwriter.writerowで書き込むというのをfor文で回せば可能です。