使用Python

时间:2016-08-19 22:16:31

标签: python python-3.x pydev

我需要将一些数据打印到Python 3.4 / 3.2中的txt文件中。

文件中的每一行都有以下格式:

   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值,必须添加新行。例如,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

由于

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,我会使用它只存储id和cttype的东西,直到找到id匹配,然后从内存输出到file和del。以下是插图

argparse.py

以上内容仅供参考,可能有错误或其他问题。