从列中提取日期,数据并从python 3.2中的文本文件中填充空数据

时间:2012-10-23 01:12:58

标签: python-3.x

如果有人能帮助我,我真的很感激。我是python中的新手,事情是我有大量的.txt文件,我必须从列中提取数据并将它们放在一起包含日期...文件的每一列代表一个月年度和每一行的对应日期值(如下图所示)

         DIA       ENERO *  FEBRE *  MARZO *  ABRIL *  MAYO  *  JUNIO *  JULIO *  AGOST *  SEPTI *  OCTUB *  NOVIE *  DICIE *


       01                                                       .0       .0       .0       .0      5.0       .0
       02                                                     53.0      2.0       .0       .0       .0     10.0
       03                                                       .0     30.0       .0       .0       .0       .0
       04                                                       .0       .0       .0       .0     30.0       .0
       05                                                       .0       .0       .0       .0       .0       .0
       06                                                     24.0       .0       .0       .0       .0       .0
       07                                                       .0       .0       .0       .0       .0     17.0
       08                                                       .0       .0       .0       .0       .0       .0
       09                                                       .0     11.0       .0       .0       .0       .0
       10                                                       .0       .0       .0       .0       .0       .0
       11                                                      3.0       .0       .0     13.0       .0       .0
       12                                                       .0       .0       .0       .0       .0       .0
       13                                                       .0       .0       .0       .0     17.0       .0
       14                                              .0       .0       .0     18.0       .0      4.0     16.0
       15                                             6.0       .0       .0      3.0       .0       .0       .0
       16                                              .0       .0     32.0     10.0       .0       .0       .0
       17                                              .0       .0     17.0      8.0       .0       .0       .0
       18                                              .0       .0       .0       .0       .0       .0     52.0
       19                                             9.0       .0       .0      9.0     35.0       .0      2.0
       20                                             3.0       .0       .0       .0      5.0       .0       .0
       21                                              .0      5.0      2.0       .0       .0       .0       .0
       22                                              .0      9.0       .0       .0     10.0       .0    100.0
       23                                             1.0       .0       .0      1.6       .0       .0      6.0
       24                                             7.0       .0       .0       .0     27.0       .0       .0
       25                                            31.0       .0       .0       .0       .0       .0       .0
       26                                            52.0       .0       .0       .0       .0       .0       .0
       27                                              .0       .0       .0       .0       .0     14.0       .0
       28                                             2.0      3.0       .0       .0       .0       .0       .0
       29                                             2.0      9.0       .0       .0       .0     26.0       .0
       30                                              .0       .0       .0       .0     25.0       .0       .0
       31                                             3.0                .0     30.0                .0

如您所见,某些数据缺失,因此我应该每天为每个丢失的数据添加-99。最后,我的文件应如下所示:

DATE            VALUE
01/01/1989      -99
01/02/1989      -99
01/03/1989      -99
.
.
.
05/14/1989      0.0
05/15/1989      6.0
.
.
12/31/1989      -99

我试图通过'\ t'和''转换列表中的每一行来分割文件的每一行,以便稍后追加列而没有可行的结果......

with open (file) as f:
for line in f:
   line = line.split(' ')

提前多多感谢!

1 个答案:

答案 0 :(得分:0)

这似乎是一种记录不佳的格式。但是,考虑到这种格式,也许你最好的选择是在字典中记录它到达那个类别之前有多少个字符(即{Enero:15,etc})。然后为每一行标识数字(数字之间至少有一个空格)和在它们之前出现的字符数。然后通过反复试验,您可以看到字符数是否与其中一个类别的值完全一致,如果不是,您可以说它是否在该类别的2个范围内,那么我们将其视为属于该类别。这应该具有相当高的准确性,将数字分类到适当的类别,这似乎是这项任务中最困难的元素。