我希望使用封闭的股票价值制作CSV,在Windows上使用python 2.7从Yahoo Finance下载。该文件是电话"历史价格"。我有一个列表中的代码,我想知道我是否可以创建一个连续的闭合值的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)答案 0 :(得分:0)
你拥有的一切看起来都很好。 对于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),则此参数也很有用。
希望这有帮助。