首页 > 解决方案 > 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 函数的第一行来防止发生此错误。

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

标签: python

解决方案


原来我偶然在另一个函数中使用了 csv 。一旦我更改了 csv,问题就消失了

功能:

def get_list(csv):
    with open(csv,'rt') as fin:
        for line in fin:
            drList.append(gen_list(line))
        return (drList)

推荐阅读