Python在with open as语句之外,将读取的CSV文件内容转为列表,报错:对已关闭的文件进行操作

大家好!代码见截图1。我在withopenas语句之外,将读取的CSV文件内容转为列表,报错。我不太明白,在withopenas语句之外,文件对象file肯定是关闭了。但... 大家好!代码见截图1。我在with open as语句之外,将读取的CSV文件内容转为列表,报错。我不太明白,在with open as语句之外,文件对象file肯定是关闭了。但我操作的不是file,而是读取出来的csv文件的内容content。content应该是一个独立的变量吧?跟file是否关闭应该没关系吧?为什么不行呢?把转换为列表的操作放到with open as语句之内,确实就好了。见截图2。我又随便找个txt文件测了一下,没有这个问题,见截图3。看来还是CSV处理的机制我不太清楚。求大神们指点一下,谢谢!! 展开
 我来答
hy1397471
2019-07-18 · 知道合伙人软件行家
hy1397471
知道合伙人软件行家
采纳数:4714 获赞数:17154
15年数据库维护及数据库应用系统开发经验,从事零售业、服务业及财务管理类系统开发与维护。

向TA提问 私信TA
展开全部

你用CSV模块读的时候,返回的是一个对象,这个对象关闭了就没了。

直接读取文件,非csv模块方式,返回的则是str或list

追问

您好!我还是没太明白。关闭的应该是file这个文件对象吧?对象content应该没有关闭吧?我在with open as语句之外是可以打印出对象content的内存地址的。

追答

给你一个简单的例子,正常读取列表

删除列表,类似with关闭了f,对象读不了值。也就是csv返回的是一个对象,是一个迭代对象,要取值,才会去读f文件,它保存的不是读取的内容,是读取的动作,你放在with外面,文件已经被关闭了,自然就报错了

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式