read()返回一个字符串,因此Info是一个字符串。对字符串的迭代将导致迭代组成字符串的每个字符:>>> for c in 'abcd':
... print c
a
b
c
d
因此,您的代码将把每个字符写到csv文件的单独一行。
您接收的数据实际上已经是CSV格式的。以下是股票YHOO的前几行:
^{pr2}$
所以只需保存文件即可:with open('{}.csv'.format(Ticker),'wb') as output:
output.write(Website.read())
这将把数据写入一个名为stock name后跟.csv扩展名的文件,例如YHOO.csv
更新
下面的代码演示如何下载和合并多个股票的数据。输出文件现在需要一个额外的字段来标识股票-Stock ID。这将作为标题行和详细信息行的第一个CSV字段插入。标头仅发射一次。import requests
yahoo_url = 'http://ichart.yahoo.com/table.csv'
params = {'a': 0, 'b': 1, 'c': 2010, 'd': 11, 'e': 31, 'f': 2014, 'g': 'm', 'ignore': '.csv'}
stock_ids = ['AAPL', 'GOOG', 'YHOO']
with open('output.csv', 'wb') as output:
header_written = False
for stock_id in stock_ids:
params['s'] = stock_id
r = requests.get(yahoo_url, params=params)
lines = r.iter_lines()
header = next(lines)
if not header_written:
output.write('Stock ID,{}\n'.format(header))
header_written = True
output.writelines('{},{}\n'.format(stock_id, line) for line in lines)