亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

csv.Error:迭代器應返回字符串,而不是字節

csv.Error:迭代器應返回字符串,而不是字節

精慕HU 2019-10-17 10:29:08
Sample.csv包含以下內容:NAME    Id   No  DeptTom     1    12   CSHendry  2    35   ECBahamas 3    21   ITFrank   4    61   EEPython文件包含以下代碼:import csvifile  = open('sample.csv', "rb")read = csv.reader(ifile)for row in read :    print (row) 當我在Python中運行上述代碼時,出現以下異常:文件“ csvformat.py”,第4行,在已讀行中為_:_ csv.Error:迭代器應返回字符串,而不是字節(您是否以文本模式打開文件?)我該如何解決?
查看完整描述

3 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

您以文本模式打開文件。


進一步來說:


ifile  = open('sample.csv', "rt", encoding=<theencodingofthefile>)

編碼的不錯猜測是“ ascii”和“ utf8”。您還可以關閉編碼,它將使用系統默認編碼,該編碼通常為UTF8,但可能還有其他含義。


查看完整回答
反對 回復 2019-10-17
?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

我只是用我的代碼解決了這個問題。引發該異常的原因是因為您有參數rb。將其更改為r。


您的代碼:


import csv

ifile  = open('sample.csv', "rb")

read = csv.reader(ifile)

for row in read :

    print (row) 

新代碼:


import csv

ifile  = open('sample.csv', "r")

read = csv.reader(ifile)

for row in read :

    print (row)


查看完整回答
反對 回復 2019-10-17
?
慕田峪9158850

TA貢獻1794條經驗 獲得超8個贊

您的問題是您b的open標志中有。標志rt(讀取,文本)是默認設置,因此,使用上下文管理器只需執行以下操作:


with open('sample.csv') as ifile:

    read = csv.reader(ifile) 

    for row in read:

        print (row)  

上下文管理器意味著您不需要常規的錯誤處理(如果沒有這種處理,您可能會卡在打開文件中,尤其是在解釋器中),因為它會在發生錯誤或退出上下文時自動關閉文件。


上面的與:


with open('sample.csv', 'r') as ifile:

    ...

要么


with open('sample.csv', 'rt') as ifile:

    ...


查看完整回答
反對 回復 2019-10-17
  • 3 回答
  • 0 關注
  • 591 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號