前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【hacker的错误集】ValueError: I/O operation on closed file

【hacker的错误集】ValueError: I/O operation on closed file

作者头像
hacker707
发布2022-11-27 09:56:06
1K0
发布2022-11-27 09:56:06
举报
文章被收录于专栏:hacker的个人博客

✅作者简介:大家好我是hacker707,大家可以叫我hacker,新星计划第三季python赛道Top1🏆🏆🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:hacker的错误集 💬推荐一款模拟面试、刷题神器👉点击跳转进入网站

在这里插入图片描述
在这里插入图片描述

hacker错误集

报错内容

报错代码:

代码语言:javascript
复制
import csv

person = [('xxx', 18, 180), ('yyy', 18, 182), ('zzz', 19, 185)]
# 表头
header = ['name', 'age', 'height']

with open('person.csv', 'w', encoding='utf-8-sig') as file_obj:
    # 1:创建writer对象
    writer = csv.writer(file_obj)
    # 2:写表头
    writer.writerow(header)
    # 3:遍历列表,将每一行的数据写入csv
for p in person:
    writer.writerow(p)
在这里插入图片描述
在这里插入图片描述

报错分析

ValueError: I/O operation on closed file.依旧是使用单词意思来分析报错原因 ValueError值错误 closed file关闭的文件 通过分析可以得出:with open处理了已经被关闭的数据。使用with open打开文件,如果语句在with open之外是无效的,因为文件已经被关闭了 居然:那应该怎么解决呢 hacker:👀👀👀

解决方案

其实解决方法很简单,只需要将你要处理的数据都加到with open里,改一下代码缩进即可完美解决

在这里插入图片描述
在这里插入图片描述

改进后的代码:

代码语言:javascript
复制
import csv

person = [('xxx', 18, 180), ('yyy', 18, 182), ('zzz', 19, 185)]
# 表头
header = ['name', 'age', 'height']

with open('person.csv', 'w', encoding='utf-8-sig') as file_obj:
    # 1:创建writer对象
    writer = csv.writer(file_obj)
    # 2:写表头
    writer.writerow(header)
    # 3:遍历列表,将每一行的数据写入csv
    for p in person:
        writer.writerow(p)

完美解决🥳🥳🥳

结束语🏆🏆🏆

会持续更新专栏《hacker的错误集》相关知识,如果有改进的建议欢迎在评论区留言奥~ 感谢大家对hacker的支持💖💖💖

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • hacker错误集
  • 报错内容
    • 报错分析
      • 解决方案
  • 结束语🏆🏆🏆
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档