首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的程序在编写Stocks.txt时跳过最后一个元素(tesla)?

为什么我的程序在编写Stocks.txt时跳过最后一个元素(tesla)?
EN

Stack Overflow用户
提问于 2017-05-23 18:10:32
回答 1查看 37关注 0票数 0

我只是想知道,为什么我的程序,即使它找到了数据,不能写特斯拉的数据,即使它写的每一个股票的数据。这是我的代码:

代码语言:javascript
复制
import requests, bs4, logging

stocks = {"google":"694653","amazon":"660463","apple":"22144","hack":"898127760101820","facebook":"296878244325128",
          "biotech":"700203","construction":"705971","nvidia":"662925","netflix":"672501","tesla":"12607212","":""}

new = open("Stocks.txt","w")

for stock in stocks:

    website = requests.get("https://www.google.ca/finance?cid=" + stocks[stock])
    website.raise_for_status()

    html = bs4.BeautifulSoup(website.text,"html.parser")

    price = (html.select(("#ref_%s_l") % stocks[stock])[0]).getText()
    change = (html.select(("#ref_%s_cp") % stocks[stock])[0]).getText()

    today = open("Stocks.txt","a")
    today.write(stock + ": " + price + "  " + change + 2*"\n")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-23 18:46:19

避免此类文件关闭问题的一个好方法是使用with构造:

例如,替换

代码语言:javascript
复制
new = open("Stocks.txt","w")

使用

代码语言:javascript
复制
with open("Stocks.txt","w") as new:
    new.write ("XXX")
    #you can do all kinds of stuff here

这将在您完成缩进部分之后自动关闭文件。您可以在这个这里和这个所以问题上阅读。

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

https://stackoverflow.com/questions/44142107

复制
相关文章

相似问题

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