【发布时间】:2014-02-01 08:51:15
【问题描述】:
使用以下代码,我尝试每 5 分钟从网站获取数据,为其添加时间戳,计算其登录返回并将所有数据附加到 csv 文件中。
获取数据、为其添加时间戳并将其附加到 csv 是可行的,但是当我尝试弄清楚如何包含日志返回时,我有点卡住了。
import time
from time import strftime, gmtime
import numpy as np
import urllib2
from urllib2 import urlopen
from math import log
coiAr = []
dateAr = []
logReAr = []
def mcapGrab():
while True:
try:
sourceCode = urllib2.urlopen('http://coinmarketcap.com').read()
mcapUSD = sourceCode.split('<strong>Total Market Cap: <span id="total-marketcap" data-usd="')[1].split('"')[0]
coiAr.append(float(mcapUSD.replace(',','')))
date = strftime('%d %b %Y %H:%M:%S', gmtime())
dateAr.append(date)
# if len(coiAr) > 0:
# indexLog = 1
# logRe = log(coiAr[indexLog]/coiAr[indexLog-1])
# logReAr.append(logRe)
# indexLog += 1
# else:
# logReAr.append(0)
for eachMcap in coiAr:
saveLine = date+','+str(eachMcap)+'\n'
saveFile = open('mcapdata.csv', 'a')
saveFile.write(saveLine)
saveFile.close()
s = 0
print dateAr[s]+','+str(coiAr[s])
time.sleep(300)
s+= 1
except Exception, e:
print 'Failed to grab market cap', str(e)
mcapGrab()
我已经注释掉了我尝试计算和附加日志返回但不起作用的部分。
任何帮助将不胜感激!
【问题讨论】:
-
您的预期输出是什么?当您取消注释行时会发生什么?
-
您是先将数据读入
coiAr吗?您没有使用列表,不是真的,因为您附加 一个 项目,然后将该项目写出到您的 CSV 文件中。 -
您是否尝试根据写入 CSV 文件的 previous 值计算日志?
-
当我取消注释这些行时,我得到:未能获取市值列表指数超出范围 2014 年 1 月 13 日 15:08:19,12608482759.0,0.0。是的,我正在尝试根据
coiAr中的先前值计算日志。 -
你得到一个
IndexError,很可能是因为你在索引 0 处只有一个条目?
标签: python python-2.7 csv logging append