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

简介: ValueError: I/O operation on closed file.依旧是使用单词意思来分析报错原因

78c5e154928c4d0bb6a0cd1fcc5664ff.jpg


报错内容



报错代码:


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)

7daf42dae7c244c69dfc55c3819e5f99.png


报错分析



ValueError: I/O operation on closed file.依旧是使用单词意思来分析报错原因

ValueError值错误

closed file关闭的文件


通过分析可以得出:with open处理了已经被关闭的数据。使用with open打开文件,如果语句在with open之外是无效的,因为文件已经被关闭了

居然:那应该怎么解决呢

hacker:👀👀👀


解决方案



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


image.png


改进后的代码:


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的支持💖💖💖


相关文章
|
Web App开发 Windows
Selenium Chrome浏览器版本与chromedriver驱动兼容版本对照表
Selenium Chrome浏览器版本与chromedriver驱动兼容版本对照表
2546 0
Selenium Chrome浏览器版本与chromedriver驱动兼容版本对照表
|
4月前
|
自然语言处理 前端开发 测试技术
Playwright教程基础篇(2)元素定位策略大全
简介:本文深入解析Playwright元素定位技术,涵盖八大核心策略、动态元素处理、调试技巧及企业级最佳实践,助你提升自动化测试脚本稳定性,告别传统定位痛点。
|
机器学习/深度学习 自然语言处理 监控
命名实体识别(Named Entity Recognition, NER)
命名实体识别(Named Entity Recognition, NER)
770 0
|
C++
【洛谷 P1044】[NOIP2003 普及组] 栈 题解(递归+记忆化搜索)
**NOIP2003普及组栈问题**:给定操作数序列1到n,仅允许push(进栈)和pop(出栈)操作。目标是计算所有可能的输出序列总数。输入包含一个整数n(1≤n≤18)。示例输入3,输出5。当队列空时返回1,栈空则只能入栈,栈非空时可入栈或出栈。AC C++代码利用记忆化搜索求解。
274 1
|
存储 JavaScript Serverless
函数计算产品使用问题之如何实现项目自动化部署
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
197 0
|
弹性计算 DataWorks 关系型数据库
DataWorks操作报错合集之DataX在执行过程中接收到了意外的信号15,导致进程被终止,该怎么处理
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
安全 Java Android开发
Android 14适配Google play截止时间临近,适配注意点和经验
本文介绍了Android 14带来的关键更新,包括性能优化、定制化体验、多语言支持、多媒体与图形增强等功能。此外,还强调了适配时的重要事项,如targetSdkVersion升级、前台服务类型声明、蓝牙权限变更等,以及安全性与用户体验方面的改进。开发者需按官方指南更新应用,以充分利用新特性并确保兼容性和安全性。
870 0
|
JSON JavaScript API
Python进阶---FastAPI框架
Python进阶---FastAPI框架
446 2
|
数据采集 前端开发 JavaScript
数据采集Selenium中的弹窗处理
使用Selenium自动化处理网页弹窗,包括浏览器警告(alert、confirm、prompt)和HTML自定义弹窗。示例代码展示了如何接受警
865 0
数据采集Selenium中的弹窗处理
|
数据挖掘 索引 Python
Python 教程之 Pandas(6)—— DataFrame 中的转换函数
Python 教程之 Pandas(6)—— DataFrame 中的转换函数
627 0
Python 教程之 Pandas(6)—— DataFrame 中的转换函数