当前位置: 首页 > 知识库问答 >
问题:

写入CSV文件:值错误:对关闭的文件执行I/O操作

熊烨
2023-03-14

代码从卡中刮取单个事件,但我一直收到以下错误:

C:\Python27\python.exeC:/用户/詹姆斯/PycharmProjects/剪贴画/scrapy.py回溯(最近的调用最后):文件"C:/用户/詹姆斯/PycharmProjects/剪贴画/scrapy.py",第31行,在writer.writerow(c)值错误: I/O关闭文件的操作

我正在使用pyCharm。

退出代码为1的过程结束Python会动态创建csv文件,但我也尝试在项目中创建csv文件,但仍然收到相同的消息。我认为问题可能在于第31行拉链后的线。谢谢你的帮助。

import csv
from urllib import urlopen
from bs4 import BeautifulSoup

html = urlopen("http://www.gbgb.org.uk/resultsRace.aspx?id=1793467")
bsObj = BeautifulSoup(html)

one = bsObj.findAll("li", {"class": "first essential fin"})
two = bsObj.findAll("li", {"class": "essential greyhound"})

three = bsObj.findAll("li", {"class": "timeDistance"})
four = bsObj.findAll("li", {"class": "trap"})
five = bsObj.findAll("li", {"class": "sp"})
six = bsObj.findAll("li", {"class": "timeSec"})
seven = bsObj.findAll("li", {"class": "essential trainer"})
eight = bsObj.findAll("li", {"class": "first essential comment"})

firstessentialfin = [a.getText().strip() for a in one]
essentialgreyhound = [b.getText().strip() for b in two]
timeDistance = [c.getText().strip() for c in three]
trap = [d.getText().strip() for d in four]
sp = [e.getText().strip() for e in five]
timeSec = [f.getText().strip() for f in six]
essentialtrainer = [g.getText().strip() for g in seven]
firstessentialcomment = [h.getText().strip() for h in eight]

with open('dogfile.csv', 'wb') as csvfile:
    writer = csv.writer(csvfile, delimiter=",")
for c in zip(firstessentialfin, essentialgreyhound, timeDistance,    trap,sp, timeSec, essentialtrainer,
         firstessentialcomment):
    writer.writerow(c)

共有1个答案

章德惠
2023-03-14

问题在于压痕。将for循环移动到具有上下文管理器主体的下:

with open('dogfile.csv', 'wb') as csvfile:
    writer = csv.writer(csvfile, delimiter=",")
    for c in zip(firstessentialfin, essentialgreyhound, timeDistance,    trap,sp, timeSec, essentialtrainer, firstessentialcomment):
        writer.writerow(c)

 类似资料:
  • 我需要帮助,请我从2天前开始尝试解决此问题,但没有成功,我是python新手,请更改代码并解释: 这是它的代码和通过scapy的arp扫描程序。它从scapy扫描中获取结果,并将扫描结果(ip和macaddress)保存到linux机器中的txt文件中 然后运行一个外部python脚本,通过以下命令:os.system("pythondetect_doublepulsar_smb.py--file

  • 问题内容: 这里,是一本字典,并且都是字符串。 当我尝试写入文件时,它报告错误: 问题答案: 正确缩进;您的陈述应在区块内: 在块外部,文件已关闭。

  • 我无法将单词打印到文件中。我的代码只是给我一个错误:

  • 我从Theano和Keras开始深入学习。但是,对于任何程序,我都必须加载数据集,而我无法加载任何数据集。 即使我运行这两行:- 我甚至用minst数据集尝试了上述方法。完全相同的错误。 我试着一个接一个地运行命令,第一次导入很顺利。在第二个命令中,它运行,python开始下载。然而,几秒钟后,它就断了。 这就是确切的错误:- (X_列,y_列),(X_测试,y_测试)=cifar10。load_

  • 错误:## Tkinter回调中的异常 回溯(最近一次呼叫最后一次): 文件“C:\Users\hp-\AppData\Local\Programs\Python\Python35-32\lib\tkinter\uuuuuu init\uuuuuuuuu.py”,第1549行,在call return self中。func(*args) 文件"C:\用户\hp-\下载\pyguii.py",第12

  • 当我运行我的代码时,我收到以下错误。 我正在运行的代码,如下所示: 它说错误在第41行,给出为 沟通电话有什么问题吗?