53978


お世話になります。  
PythonでCSVの書き込みを行い、変数に取得したいと考えています。  
通常であれば、ファイルに書き込んだ後、そのファイルを読み込むことで取得可能かと思います。  
例えばこんな感じで。  
※ 申し訳ありませんが、例外処理とか、もろもろは省略させていただいています。）  
また、今回は便宜上、データを手入力していますが、実際は利用者が入力したデータを利用する予定です。

[code]

    import csv, tempfile
    fp = tempfile.TemporaryFile(mode="w+", newline="", encoding="utf_8", prefix="csv_", suffix=".dat")
    writer = csv.writer(fp, delimiter=",", quotechar='"', quoting=csv.QUOTE_MINIMAL)
    li = []
    li.append("番号")
    li.append("内容")
    writer.writerow(li)
    li = []
    li.append("1")
    li.append("あいうえお")
    writer.writerow(li)
    li = []
    li.append("2")
    li.append("abc")
    writer.writerow(li)
    fp.seek(0)
    value=fp.read()
    fp.close()
    print(value)
    
[/code]

一応これでもいいのですが、できればファイルを介さずに直接データを取得できないかと考えています。  
何かいい方法があれば、アドバイスいただけないでしょうか。  
以上、よろしくお願いいたします。


CC BY-SA 4.0
2019-04-06T08:35:13.943
53976
2019-04-06T10:58:03.687
29034
question
python python3 csv
PythonのCSVの書き込み結果を変数で受け取りたい


CSVファイルの内容を文字列として生成したいということでしたら、`io.StringIO`を書き出し先として`csv.writer`を生成すればよいと思います。

[code]

    from io import StringIO
    import csv
    buf = StringIO()
    writer = csv.writer(buf)
    writer.writerow(["番号","内容"])
    writer.writerow(["1","あいうえお"])
    buf.getvalue() # ===> '番号,内容\r\n1,あいうえお\r\n'
    
[/code]


CC BY-SA 4.0
2019-04-06T10:58:03.687
53978
2019-04-06T10:58:03.687
9464
53976
answer