Python:Excel正在为实时股票价格提供支持。如何每10分钟向csv追加价格?

时间:2013-01-25 01:33:01

标签: excel python-2.7 stocks stockquotes algorithmic-trading

这是我的python脚本:

from xlrd import open_workbook
from xlrd import xldate_as_tuple

book = open_workbook('C:/Users/.......Constantquotes.xlsx')

sheet0 = book.sheet_by_index(0)  #Initializes the first row
print sheet0.row(0)              #Prints the first row
date_value = xldate_as_tuple(sheet0.cell(0,1).value,book.datemode)
print date_value                 #Prints the date cell


#  Next step: make the a list for the stock price
#  Next step: append the list to a csv

所以我把价格变成了excel,他们每秒都会自我更新。我想做的是让python脚本每十分钟读一次excel表(我将使用cronjob来激活python脚本),然后将最新的价格附加到包含该库存价格的csv文件中。问题是当我运行python脚本时,它给出了我上次保存excel文件的价格和日期,而不是CURRENT价格。我尝试设置选项 - >保存 - >保存 - >保存自动回复信息 - > 1分钟,但这对我没有帮助。因此,为了重新解释这个问题,我如何使它每次xlrd读入.xls文件(以便python脚本可以提取当前价格和日期)我获得当前价格和日期,而不是价格和日期我最后一次保存.xlxs文件?

理想情况下,我希望能够离开电脑几天,然后回到人口稠密的.csv

或许有一个更好的解决方案来填充.csv?

2 个答案:

答案 0 :(得分:0)

我认为这是使用VBA更好处理的任务之一。 Python无法访问数据,因为它尚未保存 - 它在内存中,但是你告诉python从磁盘读取。在我看来,你有两个合理的选择之一。

  1. 让一个VBA宏填充csv。
  2. 让VBA宏定期保存xls。

答案 1 :(得分:0)

嗯,这应该是在Excel而不是Python中实现的。在您的VBA中,您可以使用以下内容:

  1. 在您的VBA代码开始时。

    Application.DisplayAlerts = False

  2. 如果要保存工作簿。

    ThisWorkbook.Save

  3. 使用步骤1的原因是为了确保在保存工作簿之前不要求手动确认,以防您离开计算机。我建议不要在每次价格更新时保存工作簿。也许您可以使用计时器定期保存它。