2013-03-04 24 views
0

我有兩個文件,每個文件包含兩列。第一列是一個整數。第二列是一個線性座標。不是每個座標都表示出來,我想插入所有丟失的座標。下面是從我的數據的一個文件中的一個例子:如何插入缺失的行並在多個文件之間進行數學運算?

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 
    ........ 

隨着整套行,我需要添加添加(1)到每個計數(第一列)。最後,我想在兩個文件的第一列的相應行之間做一個簡單的計算(比率)。比率應該是實數。

我希望能夠在Unix上做到這一點,如果可能的話,但也有點熟悉python腳本。任何幫助是極大的讚賞。

回答

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 
+0

非常感謝ChrisGuest,這個作品非常完美。 – boloyao 2013-03-05 04:38:00

相關問題