错误:迭代器应该返回字符串,而不是_io.TextIOWrapper(你是否在文本模式下打开文件?)

时间:2017-10-12 18:20:41

标签: python csv

我从python 3.6.1开始,我想使用此代码阅读csv文档:

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?)

你知道为什么吗?

1 个答案:

答案 0 :(得分:0)

请注意语法:

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

表示type(f) == tuple,即它是带有文件句柄和"r"字符串的2元组。你的意思是:

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)