2017-10-12 35 views
0

我開始使用Python 3.6.1,我想用這個代碼讀取CSV文件:錯誤:迭代器應該返回字符串,而不是_io.TextIOWrapper(?你在文本模式下打開文件)

f = open ("mon_fichier.csv"),"r" 

import csv 

lecteur = csv.DictReader(f,delimiter=";") 

for ligne in lecteur : 
    print (ligne) 

f.close() 

我收到此錯誤信息

Error: iterator should return strings, not _io.TextIOWrapper (did you open the file in text mode?) 

你知道爲什麼嗎?

+0

StackOverflow上的問題應該是英文的! –

回答

0

小心你的語法:

f = open ("mon_fichier.csv"),"r" 

就是說type(f) == tuple,即它是一個2元組與文件句柄和"r"字符串。您的意思是:

f = open("mon_fichier.csv", "r") 

或者,由於"r"是默認的模式,你可能只是做:

f = open("mon_fichier.csv") 

真的,這是最佳實踐使用上下文管理器,所以你應該做的:

import csv 

with open("mon_fichier.csv") as f: 
    lecteur = csv.DictReader(f, delimiter=";") 
    for ligne in lecteur : 
     print(ligne) 
相關問題