2016-01-16 98 views
1

我有數千行需要比較的多個文件。 比如我想要做減法file3 = file2 - file1將文件讀入數組python

file1 
1 10 5 
2 20 4 
3 30 3 



file2 
5 20 10 
6 30 10 
7 40 10 

file3

4 10 5 
4 10 6 
4 10 7 

我不知道什麼是做這種類型的計算最好的方式。我正在嘗試Python,但我很難讀取文件到python,使其成爲適合於計算的數組。 謝謝。

回答

2

你可以使用numpy.genfromtxt

import numpy as np 
a1 = np.genfromtxt('file1') 
a2 = np.genfromtxt('file2') 
a3 = a2 - a1 
print(a3) 
array([[ 4., 10., 5.], 
     [ 4., 10., 6.], 
     [ 4., 10., 7.]]) 

然後,你可以保存陣列numpy.savetxt與格式%d如果需要輸出爲整數:

np.savetxt('file3', a3, fmt='%d') 
0

打開這兩個文件,然後依次通過他們zip

with open('file1.txt') as first, open('file2.txt') as second, open('file3.txt', 'w') as output: 
    for a, b in zip(first, second): 
     a = map(int, a.split()) 
     b = map(int, b.split()) 
     output.write(' '.join(map(str, (y-x for x,y in zip(a,b)))) + '\n')