如何在多个文件之间插入缺失的行并进行数学运算?

时间:2013-03-04 03:17:01

标签: python unix text

我有两个文件,每个文件包含两列。第一列是整数。第二列是线性坐标。并非每个坐标都被表示,我想插入所有缺失的坐标。以下是我的数据的一个文件中的示例:

  3 0
  1 10
  1 100
  2 1000
  1 1000002
  1 1000005
  1 1000006

对于此示例,缺少坐标1-9,11-99等,但需要插入,需要计数为零(0)。

  3 0
  0 1
  0 2
  0 3
  0 4
  0 5
  0 6
  0 7
  0 8
  0 9
  1 10
  ........

对于完整的行集,我需要在每个计数(第一列)中添加add(1)。最后,我想对两个文件中第一列的相应行进行简单的计算(比率)。比率应该是实数。

如果可能的话,我希望能够用Unix做到这一点,但我也熟悉python脚本。任何帮助是极大的赞赏。

1 个答案:

答案 0 :(得分:2)

这应该适用于Python 2.3以上。

我认为你的文件是以空格分隔的。

如果您希望值超过1000006,则需要更改desired_range的值。

import csv

desired_range = 1000007
reader = csv.reader(open('fill_range_data.txt'), delimiter=' ')

data_map = dict()
for row in reader:
    frequency = int(row[0])
    value = int(row[1])

    data_map[value] = frequency

for i in range(desired_range):
    if i in data_map:
        print data_map[i], i
    else:
        print 0, i