首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我的Python程序在运行第一个循环后关闭?

为什么我的Python程序在运行第一个循环后关闭?
EN

Stack Overflow用户
提问于 2018-06-08 04:04:45
回答 1查看 50关注 0票数 0

我是Python和scraping的新手。我正在尝试运行两个循环。一个人去从一个页面上抓取ids。然后,使用这些ids,我调用另一个API来获取更多信息/属性。

但是当我运行这个程序时,它只运行了第一部分(获取I),但随后它关闭了,没有运行第二部分。我觉得我在这里遗漏了一些关于Python中控制流的非常基本的东西。当我在终端中运行Python时,为什么Python在第一次循环后关闭?

代码语言:javascript
复制
import requests
import csv
import time
import json
from bs4 import BeautifulSoup, Tag

file = open('parcelids.csv','w')
writer = csv.writer(file)
writer.writerow(['parcelId'])

for x in range(1,10):
    time.sleep(1) # slowing it down
    url = 'http://apixyz/Parcel.aspx?Pid=' + str(x)
    source = requests.get(url)
    response = source.content
    soup = BeautifulSoup(response, 'html.parser')
    parcelId = soup.find("span", id="MainContent_lblMblu").text.strip()
    writer.writerow([parcelId])

out = open('mapdata.csv','w')   
with open('parcelIds.csv', 'r') as in1:
    reader = csv.reader(in1)
    writer = csv.writer(out)
    next(reader, None) # skip header
    for row in reader:
        row = ''.join(row[0].split())[:-2].upper().replace('/','-') #formatting
        url="https://api.io/api/properties/"
        url1=url+row
        time.sleep(1) # slowing it down
        response = requests.get(url1)       
        resp_json_payload = response.json()
        address = resp_json_payload['property']['address']
        writer.writerow([address])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-08 04:12:36

如果您在windows (其中文件名不区分大小写)中运行,则当您重新打开要读取的文件(parcelids.csv)时,该文件仍处于打开状态。

请先尝试关闭该文件,然后再打开该文件进行读取。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50749378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档