お世話になります。
環境はwindows10 python3.6です。
下記のpyファイルを用いてコマンドプロンプト上で
test.py > result.csv
とし、csvを出力しています。
python
1import csv 2import os.path 3 4dirname = os.path.dirname(__file__) 5path = os.path.join(dirname,"test.csv") 6 7f = open(path, "r", encoding="utf-8") 8reader = csv.DictReader(f) 9for line in reader: 10 print(line["status"],",",line["user_id"]) 11f.close()
当コードは status も user_id も数字、英語の為問題無いのですが、
user_idやstatusが日本語になった場合に、
UnicodeEncodeError: 'cp932' codec can't encode character '\u5434' in position 0: illegal multibyte sequence
となり、出力する事が出来ません。
どの様にすれば日本語ファイルが出力出来る様になるかご教示頂きたく思います。
現在はVS codeにコードを書いて、右クリックプロンプトで実行をしています。
リダイレクトを利用しない方向で考えています。
辞書型で書き出しを行いたいです。
csvファイルは40程度の見出しで、数万行です。
userID_A.csv(userIDとAの情報の組み合わせ)
userID_B.csv(userIDとBの情報の組み合わせ)
userID_C.csv(userIDとCの情報の組み合わせ)で出力を行いたいです。
python
1import csv 2import os.path 3 4dirname = os.path.dirname(__file__) 5path = os.path.join(dirname,"test.csv") 6f = opne(path, "w", encoding="utf-8", newline="") 7 8fieldnames = ["status","日本語のデータ"] 9writer = csv.DictWriter(f, fieldnames=fieldnames) 10writer.writerrow({"status":std, "日本語のデータ":"日本語"}) 11f.close()
上記コードだと出来そうですが、行数が数万行ある為、不可能と考えました。
何かリダイレクトせずCSVに一気に書き出せる方法は無いでしょうか?
回答2件
あなたの回答
tips
プレビュー