我需要從Python 3.4/3.2打印一些數據到txt文件。將大數據打印爲Python中的特殊格式
文件中的每一行具有以下格式:
col1 | col2 | col3 |
id1 CT_TYPE value1 CT_TYPE value2
AR CT1 239 CT2 9.66
AR CT3 8.65
NY CT1 6.25 CT2 67.89
NY CT3 78.61
對於相同ID1,如果有CT_TYPE超過2倍的值,就必須在兩個COL2和COL3和僅最後的值的被打印的id1類型可以讓col3爲空。例如,以下打印格式是錯誤的。
col1 | col2 | col3 |
id1 CT_TYPE value1 CT_TYPE value2
AR CT1 239 " this cannot be left as blank"
AR CT2 9.66 CT3 8.65
對於不同的id1值,必須添加一個新行。 Fror示例,id1 = NY不能與AR位於同一行:
AR CT3 8.65 NY CT1 6.25 // this is not allowed.
有幾十萬條數據行需要打印。我不想使用排序,因爲數據大小要保存在Python中的數據結構中。所以,我必須逐塊加載數據庫中的數據並將它們打印到文件中。我可以確保從數據庫加載的每個塊都具有相同的id1值。
我的問題是如何確保在數據逐塊打印時保持上述格式? 在Python中,我使用:
with open(fileName, 'a') as f:
f.wite(aLine + "\n");
如何改變當前打印位置,使得同一ID1類型的CT_type值在「\ n」個已後所添加的同一行甚至足以換行符印刷最後的數據行被打印出來。例如,如果我的文件中有這些:
col1 | col2 | col3 |
id1 CT_TYPE value1 CT_TYPE value2
AR CT1 239
在新塊的新數據線是這樣的:
AR CT2 9.66
我想:
col1 | col2 | col3 |
id1 CT_TYPE value1 CT_TYPE value2
AR CT1 239 CT2 9.66
不:
col1 | col2 | col3 |
id1 CT_TYPE value1 CT_TYPE value2
AR CT1 239
AR CT2 9.66
謝謝