✅作者简介:大家好我是hacker707,大家可以叫我hacker,新星计划第三季python赛道Top1🏆🏆🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:hacker的错误集 💬推荐一款模拟面试、刷题神器👉点击跳转进入网站
报错代码:
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里,改一下代码缩进即可完美解决
改进后的代码:
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的支持💖💖💖