2016-02-09 18 views
1

我試圖將從雅虎財務API獲得的貨幣匯率保存爲.txt文件作爲while循環,而另一個線程正在讀取它並編寫圖表用它。由於某些原因,它不會寫入文件,因此整個程序將無法工作如何使寫入文件的循環python

def thread(spot=1): 
    while spot >60: 
     savedFile.write(str(currencies.get_rate()) + ',' + str(spot) + '\n') 
     spot += 1 
     time.sleep(1) 
+0

你打開和關閉'savedFile'的地方? –

+0

這看起來像一個無限循環...如果'現貨> 60''你繼續讓它更大 –

+0

我打開它的權利,並在循環後立即 – visu

回答

0

當數據在緩衝區中時,您無法將其讀入其他線程。您應該flush該文件。通知操作系統將緩衝區推送到磁盤。

def thread(spot=1): 
    while spot >60: 
     savedFile.write(str(currencies.get_rate()) + ',' + str(spot) + '\n') 
     savedFile.flush() 
     spot += 1 
     time.sleep(1) 
+0

好吧謝謝我添加它 – visu

0

嘗試給予循環更嚴格的限制。如果您希望它寫入,直到它低於60,然後給文件寫入最大數量。一種方法是使用if語句並使用相同的計數器。