python读取csv时csv.Error: iterator should return strings, not bytes

当使用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+的区别是可以写到文件任何位置
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值