1. ホーム
  2. python

エラー:イテレータはバイトではなく文字列を返すべき(ファイルをテキストで開いたか?

2022-02-08 08:32:31

python が csv ファイルを読み込むとエラーが発生する

import csv

with open('E:/Selenium2script/DDT module/test.csv','rb') as f:
    readers = csv.reader(f)
    next(readers,None)
    for line in readers:
        print(line)






出力します。
_csv.Error: iterator should return strings, not bytes (did you open file in text mode?ファイルをテキストモードで開きましたか?)


<スパン 問題点の分析 このcsvファイルはバイナリファイルではなく、テキストファイルであるため。


<スパン 解決策

<スパン

import csv

with open('E:/Selenium2script/DDT module/test.csv','rt') as f:
    readers = csv.reader(f)
    next(readers,None)
    for line in readers:
        print(line)


または、'rt'を'r'に置き換える。


注:ここでの次の記述は、タイトルのキー値を読まないようにすることです


with open(file_name,'wt',newline='') as f:


newline=' ' を追加すると、書き込まれるデータに空行がなくなります。