python 2.7:将日志返回附加到csv
使用下面的代码,我试图每5分钟从一个网站抓取一次数据,给它加上时间戳,计算它的logn返回,并将所有这些附加到一个csv文件中 抓取数据,加上时间戳并附加到csv是可行的,但当我试图找出如何包含日志返回时,我有点卡住了python 2.7:将日志返回附加到csv,python,python-2.7,csv,logging,append,Python,Python 2.7,Csv,Logging,Append,使用下面的代码,我试图每5分钟从一个网站抓取一次数据,给它加上时间戳,计算它的logn返回,并将所有这些附加到一个csv文件中 抓取数据,加上时间戳并附加到csv是可行的,但当我试图找出如何包含日志返回时,我有点卡住了 import time from time import strftime, gmtime import numpy as np import urllib2 from urllib2 import urlopen from math import log coiAr = []
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()
导入时间
从时间导入strftime,gmtime
将numpy作为np导入
导入urllib2
从urllib2导入urlopen
从数学导入日志
coiAr=[]
dateAr=[]
logReAr=[]
def mcapGrab():
尽管如此:
尝试:
sourceCode=urllib2.urlopen('http://coinmarketcap.com)。读()
mcapUSD=sourceCode.split(“总市值:不要使用全局列表;只需将找到的每个条目写入文件。使用csv
模块将使这一切变得更容易:
import csv
sourceCode = urllib2.urlopen('http://coinmarketcap.com').read()
mcapUSD = sourceCode.split('<strong>Total Market Cap: <span id="total-marketcap" data-usd="')[1].split('"')[0]
mcap = float(mcapUSD.replace(',','')
# read previous value from the CSV first
with open('mcapdata.csv', 'rb') as infh:
last = None
for row in csv.reader(infh):
last = row[1] # second column
# Now calculate the log value based on the last value
logRe = log(mcap/float(last))
# write new values
with open(mcapdata.csv', 'ab') as outfh:
date = strftime('%d %b %Y %H:%M:%S', gmtime())
csv.writer(outfh).writerow([date, mcap, logRe])
导入csv
sourceCode=urllib2.urlopen('http://coinmarketcap.com)。读()
mcapUSD=sourceCode.split(“Total Market Cap:您的预期产出是什么?当您取消注释行时会发生什么?您是否先将数据读入coiAr
中?当您附加一个项目,然后将该项目写入CSV文件时,您并没有使用该列表。您是否试图根据之前写入t的值计算日志CSV文件?当我取消注释这些行时,我得到:未能获取超出范围的市值列表指数2014年1月13日15:08:1912608482759.0,0.0。是的,我正在尝试根据coiAr
中的先前值计算日志。你很可能会得到一个索引器,因为你在指数0处只有一个条目?我想我现在得到了。谢谢!