【问题标题】:Making/download a csv file with python用python制作/下载一个csv文件
【发布时间】:2014-11-07 19:10:12
【问题描述】:

我想通过在 Windows 上使用 python 2.7 从 Yahoo Finance 下载股票的收盘值来制作 CSV。该文件称为“历史价格”。我有一个列表中的代码,我想知道我是否可以制作一个包含连续封闭值的 csv 文件。例如:

AAPL,109,87,110.06,
GOOG,2123.546,213,56,

(等等)

到目前为止,我的脚本是这样的:

import urllib2
import csv

nasdaqlisted = urllib2.urlopen("ftp://ftp.nasdaqtrader.com/SymbolDirectory/nasdaqlisted.txt")
raw = nasdaqlisted.read().split("\r\n")
del raw[0]
del raw[-1]

tickerslist = []
for l in raw:
    linea = l.split("|")
    tickerslist.append(linea[0])
del tickerslist[-1]

def closed(tickerslist):
    url = urllib2.urlopen("http://real-chart.finance.yahoo.com/table.csv?s=" +tickerslist+ "&d=8&e=13&f=2014&g=d&a=11&b=12&c=1980&ignore=.csv")
    raw = url.read().split("\r\n")
    del raw[0]
    del raw[-1]

closed_us = open("closed-us.csv","w")

for i in tickerslist:
    cierres.write(closed(i))
closed_us.close()

非常感谢!

P.D.:我发现了一个这个问题。它可能会帮助你Download a .csv file with Python 但我不能说那是因为“请求”不能被导入(我猜是因为我使用 python 2.7 而不是 3.3)

【问题讨论】:

  • from urllib2 import urlopen;否则你找到的帖子中的代码是一样的。

标签: python python-2.7 url csv urllib2


【解决方案1】:

你拥有的一切看起来都不错。 对于 CSV 文件,一般来说,只需编写一个普通的文本文件并在需要的地方放置逗号就足够简单了——不需要任何狂热的东西。在您的示例中:

def closed(tickerslist):
    returnLine = tickerslist
    url = urllib2.urlopen("http://real-chart.finance.yahoo.com/table.csv?s=" +tickerslist+ "&d=8&e=13&f=2014&g=d&a=11&b=12&c=1980&ignore=.csv")
    raw = url.read().split("\r\n")[1:-1]
    # if you wanted to grab the last number on each line...
    for line in raw:
        returnLine += ','+line[line.rfind(',')+1:])
    return returnLine+'\n'

如果您只对文件的一小部分感兴趣,“read”方法有一个可选参数用于读取字节。因此,您不必下载整个文件即可在开始时查找内容。如果您想在单独的线程中下载更大的文件并更新有关进度的主线程(通常是 gui),此参数也很有帮助。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 2020-05-25
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多