Python函数看不到导入的模块

试图将 csv 读入列表。


代码如下:


import csv


with open('file.csv','r') as fin:

    reader = csv.reader(fin)

    mylist = list(reader)


print (mylist)


def gen_list():

    with open('file.csv','r') as fin:

        reader = csv.reader(fin)

        mylist = list(reader)

    print (mylist)


def main():

    gen_list()

    return 0

我的输出是:


[['one','two','three']]


Traceback():

....

line 11, in gen_list

reader = csv.reader(fin)

AttributeError: 'str' object has no attribute 'reader'

我可以通过将“import csv”作为 gen_list 函数的第一行来防止发生此错误。


为什么代码在放在函数中时不起作用?



梵蒂冈之花
浏览 128回答 2
2回答

慕妹3242003

原来我偶然在另一个函数中使用了 csv。一旦我更改了 csv,问题就消失了功能:def get_list(csv):    with open(csv,'rt') as fin:        for line in fin:            drList.append(gen_list(line))        return (drList)

白衣染霜花

试试这个:import csvwith open('file.csv','r') as fin:    reader = csv.reader(fin)    mylist = list(reader)print (mylist)def gen_list():    with open('file.csv','r') as fin:        reader = csv.reader(fin)        mylist = list(reader)    print (mylist)def main():    gen_list()    return 0看来,缩进reader的内open内gen_list是错误的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python