找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4493|回复: 1

[求助] 出现ValueError: I/O operation on closed file 为什么,怎么解决?

1

主题

1

帖子

1

积分

贫民

积分
1
WendyDu 发表于 2018-10-24 22:44:42 | 显示全部楼层 |阅读模式
import sys
reload(sys)
sys.setdefaultencoding("utf8")
import csv
import time
import requests
import json
from urllib import urlencode
def saveHtml(file_name,file_content):
   ...:     with open(file_name.replace("/","_")+".html","wb") as f:
   ...:         f.write(file_content)

def GetData(url,writer):
   ...:     resp**e=requests.get(url)
   ...:     data=resp**e.content
   ...:     saveHtml("zlzp",data)
   ...:     jsondata=json.loads(data)
   ...:     dataList=jsondata["data"]["results"]
   ...:     for dic in dataList:
   ...:         jobName=dic["jobName"]
   ...:         company=dic["company"]["name"]
   ...:         salary=dic["salary"]
   ...:         city=dic["city"]["display"]
   ...:         jobtype=dic["jobType"]["display"]
   ...:         eduLevel=dic["eduLevel"]["name"]
   ...:         workingExp=dic["workingExp"]["name"]
   ...:         print(jobName,company,salary,city,jobtype,eduLevel,workingExp)
   ...:         writer.writerow([jobName,company,salary,city,jobtype,eduLevel,workingExp])


param={"start":0,"pageSize":60,"cityId":489,"workExperience":-1,"education":-1,"companyType":-1,"employmentType":-1,"jobWelfareTag":-1,"kw":"BI工程师","kt":3,"lastUrlQuery":{"p":1,"pageSize":"60","jl":"681","kw":"python","kt":"3"}}
pages=range(1,31)
out_f=open("test.csv","w")
writer=csv.writer(out_f)
writer.writerow(["jobName","company","salary","city","jobtype","eduLevel","workingExp"])
for p in pages:
   ....:     param["start"]=(p-1)*60
   ....:     param["lastUrlQuery"]["p"]=p
   ....:     url="https://fe-api.zhaopin.com/c/i/sou?" + urlencode(param)
   ....:     GetData(url,writer)
   ....:     time.sleep(3)
   ....:     print(p)
   ....:     out_f.close()


此代码后面出现ValueError: I/O operation on closed file    ,求解为什么,怎么解决?

回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2018-10-25 14:10:01 | 显示全部楼层
out_f.close() 应该在for循环之外
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表