我需要从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
谢谢