Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python 2.7:将日志返回附加到csv_Python_Python 2.7_Csv_Logging_Append - Fatal编程技术网

python 2.7:将日志返回附加到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 = []

使用下面的代码,我试图每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 = []
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处只有一个条目?我想我现在得到了。谢谢!