質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

12281閲覧

Pythonのcsvファイルでの書き込みができない

tomotomosuikaba

総合スコア8

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/06/04 20:58

Pythonを始めたばっかしで動画通りにコードを書いていたのですが
うまくいきません

python

1# -*- coding:utf-8 -*- 2 3book = { 4 "あ":"い", 5 "う":"え", 6 "お":"お" 7 } 8 9f = open("test.csv",mode="w",encoding="shift_jis") 10 11for k in book: 12 f.write("{0},{1}\n".format(k,book[k])) 13 14f.close()

実行しようとすると
TypeError: 'encoding' is an invalid keyword argument for this function
と表示されます。
コードのencoding="shift_jis"を削除して実行してみると
日本語は文字化けしています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

動画のコードはpython3系を想定しているものの、実際にコードを動かしているのがpython2系の環境なのではないでしょうか。

バージョンは数通り確認する方法がありますが、ターミナルで「python -V」と打つか、

python

1import sys 2print(sys.version)

というコードを走らせると確認することができます。

この場合、解決策はpython3を正しく使うことです。

投稿2018/06/04 23:48

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomotomosuikaba

2018/06/05 08:28

解決しました。ありがとうございます。
guest

0

コードのencoding="shift_jis"を削除して実行してみると
日本語は文字化けしています。

書き込み自体は完了していますが、出力されたcsvの文字コードがUTF-8になってますね。
(Excelで見るとおそらく文字化けて見えると思います)

ですので、出力したCSVを何かしらの方法(nkfコマンドなど)でShift_JISに変換するのも一つの手かと思います。

上のコードを少し修正してSJISで動くようにするには、下記のようなコードでいかがでしょうか?

python

1# -*- coding:utf-8 -*- 2##この3行は環境によっては不要かもしれないです 3import sys 4reload(sys) 5sys.setdefaultencoding("utf-8") 6 7import codecs 8 9book = { 10 "あ":"い", 11 "う":"え", 12 "お":"お" 13 } 14f = codecs.open("test.csv",mode="w",encoding="shift_jis") 15 16for k in book: 17 f.write("{0},{1}\n".format(k,book[k])) 18 19f.close()

投稿2018/06/04 21:49

Takuya_Ando

総合スコア63

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問