2013-01-25 44 views
1

這裏是我的Python腳本:Python:Excel正在以實時股票價格進行交易。如何每10分鐘向csv追加價格?

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價格。我試圖設置選項 - >保存 - >保存 - >保存autorecover信息 - > 1分鐘,但這並沒有幫助我。因此,爲了重新解釋這個問題,我該如何做到這一點,以便每次xlrd讀入.xls文件(以便python腳本可以取出當前價格和日期),我得到當前的價格和日期,而不是價格和日期上次保存.xlxs文件的時間?

我非常希望能夠從計算機一步之遙了幾天,回來一個人口稠密的.csv

或者,也許有更好的解決方案來填充該.csv?

+0

Python有沒有什麼方法可以訪問提供數據的提要?數據如何進入Excel? – steveha

回答

0

我認爲這是使用VBA可以更好地處理的任務之一。 Python不能訪問數據,因爲它沒有被保存 - 它在內存中,但你告訴Python從磁盤讀取。我認爲你有兩個合理的選擇之一。

  1. 有一個VBA宏填充csv。
  2. 讓VBA宏定期保存xls。
0

那麼,這應該在Excel中實現,而不是Python。在您的VBA中,您可以使用以下內容:

  1. 在您的VBA代碼的開始。

    Application.DisplayAlerts = False

  2. 當你想保存工作簿。

    ThisWorkbook.Save

之所以使用第1步,以確保它不會節省如果你是遠離電腦工作簿之前要求手動確認。我建議不要在每個價格更新上保存工作簿。也許你可以使用定時器來定期保存它。