当使用python读取csv文件时,代码如下
import csv
reader = csv.reader(open("C:\11.csv", 'rb'))
for line in reader:
print(line)
结果出现如下错误
r[python] view plain copy
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)
表明返回的bytes,理应返回strings,按照提示,修改读取模式。
需要将代码改成
import csv
reader = csv.reader(open("C:\11.csv", 'r'))
for line in reader:
print(line)
原因是 open()方法 中参数r:Python 将会按照编码格式进行解析,read() 操作返回的是str
rb:也即 binary mode,read()操作返回的是bytes
以下是参数的解释
r或rt 默认模式,文本模式读rb 二进制文件
w或wt 文本模式写,打开前文件存储被清空
wb 二进制写,文件存储同样被清空
a 追加模式,只能写在文件末尾
a+ 可读写模式,写只能写在文件末尾
w+ 可读写,与a+的区别是要清空文件内容
r+ 可读写,与a+的区别是可以写到文件任何位置