1. ホーム
  2. パイソン

学習用Python csvモジュールでAttributeErrorが発生:モジュール 'csv' には 'writer' という属性がなく、書き込み後にスペース問題が発生する

2022-02-24 11:28:53

    今日、Pythonのクックブックのcsvの書き方の本を読んでいて、本に書いてあるコードに従ってpycharmにたたき込んで、一度実行したら、AttributeError: module 'csv' has no attribute 'writer' というエラーが出て、最初はPython 2.x と Python 3.x が原因かと思いましたが、一度ドキュメントを見てみるといや2.x と 3.x は違うcsvモジュールであると判明しました。その後、Baiduを起動し、stackoverflowの返信を見ました。次の画像を見てください。


      すると、自分で名前をつけたPythonのファイルがcsv.pyという名前であることがわかりました。そして、そのcsvをインポートしてみました。実は自分で書いたファイルと同じなんです。 !!! その後、ファイル名をcsvdemo.pyに変更したところ、エラーもなく正常に実行されました。


    しかし、書き込み用のcsvファイルを開いた後、csvファイルに書き込んだデータが1行ごとに空行になることがわかったので調べてみると、open()関数にnewlineというパラメータがあり、書き込み時にnewlineパラメータがない場合、Windowsなどの「 \rn 」を使うシステムでは、自動的に行末に「 」を付けて書き込み、空行で書き込んでいることがわかりました。

最後にPythonの学習ですが、open関数の引数など、習ったけど理解できていないことが多く、今後気をつけなければいけないと感じています。