python - 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 函数的第一行来防止发生此错误。
为什么代码放在函数中时不起作用?
解决方案
原来我偶然在另一个函数中使用了 csv 。一旦我更改了 csv,问题就消失了
功能:
def get_list(csv):
with open(csv,'rt') as fin:
for line in fin:
drList.append(gen_list(line))
return (drList)
推荐阅读
- scala - 使用 Scio 部署 DataFlow 作业
- javascript - 在 Express / EJS 应用程序中添加第二个 JS 文件
- django - DRF外键序列化
- java - Mongo Repository 按条件查找不起作用
- java - CompletableFuture.allOf 抛出异常时取消其他期货
- javascript - 如何让 WkWebview 支持 js 模块功能?使用require.js?
- amazon-aurora - 在 AWS Aurora 查询编辑器中转义分号的正确方法?
- ansible - Ansible PowerBroker
- ios - 从 Firebase 数据库检索后将字符串更改为日期时的值为 nil
- google-apps-script - 替换多个 Google 文档中的超链接