2014-11-05 57 views
0

的數據文件,我有工作更新的數據到現有的文件採用以下格式:使用Python語言

6345 Alfonso Chavez 98745.35 
2315 Terry Kulakowski 234.0 
4455 Yu Chen 78000.0 

我所試圖做的是更換平衡(在該行的最後一個項目)與我在代碼中生成的更新餘額。我不知道如何在不清除整個事物的情況下對現有文件執行此操作,這顯然不是我想要的。我正在考慮一個for循環遍歷該行並將其拆分爲單獨的列表元素,但是這將更新每個用戶的餘額而不是特定的人員。任何幫助表示讚賞。

+0

剛剛讀取整個文件並改寫 – Hackaholic 2014-11-05 04:10:34

回答

1

如果這是一個文本文件,沒有偉大的方式做到這一點。一般來說,在不保存/重寫整個文本文件的情況下,在文本文件中保存更改可能是非常困難的。相反,你應該關注的是你需要O(n)次循環遍歷整個文件尋找特定的人。

說了這麼多,python模塊fileinput似乎是一個很好的方法來做到這一點。請參閱this。你可以設置inplace = True,使它看起來像你只是改變那條線。

但這仍然是O(n)。這只是在背後暗中重寫整個文件。

另外一些其他解決方案先前討論了here

+0

明顯最好的解決方案是將數據保存在文本文件中,而不是保存在數據庫中。否則,也許你可以將數據保存在python字典中,而只是醃製或擱置它。那麼你將能夠在O(1)時間內更新餘額。 – conrad 2014-11-05 04:02:40

+0

謝謝。我會研究你提供的鏈接。 – Droxbot 2014-11-05 06:24:30