質問: codecs.getwriter('utf_8')(sys.stdout)の削除 ・encoding='euc-jp'をencoding='utf-8'に書き換え ### 補足情報(FW/ツールのバージョンなど) バージョン:Python3.7 開発環境:Atom1.31.2 こちらのサイトを参考にしました↓ https://www.python-izm.com/advanced/file_rw/
回答: Python3.7を使っているのに、python2系のコードを参考にしているっぽいのはいかがなものでしょうか。 文字コードは、エラーから察するにBOM付きUTF-8ではないでしょうか。`encoding='utf_8_sig'`を試してみてください。 ### 追記 ``` Traceback (most recent call last): File "C:\Users\sera\PycharmProjects\PatentApp\patentApp\copyXMLfiles.py", line 37, in for row in ff: # 元ファイルから1行ずつ読みだして File "C:\Program Files\Python37\lib\codecs.py", line 712, in __next__ return next(self.reader) File "C:\Program Files\Python37\lib\codecs.py", line 643, in __next__ line = self.readline() UnicodeDecodeError: 'euc_jp' codec can't decode byte 0xbf in position 2: illegal multibyte sequence [Finished in 0.221s] ``` なので、ff(読み込み側ファイル)が想定している文字コードと違うことは確実です。ヒントは「byte 0xbf in position 2」で、3バイト目(0から数えるから)に0xbfがあるということですから、BOMつきUTF-8のBOM「0xEF 0xBB 0xBF」を拾っている可能性が濃厚......ということです。