Python中两个CSV文件的比较

时间:2015-07-31 03:19:23

标签: python-2.7 csv

我想比较两个csv文件,如下所示。 在这里,我想找出无与伦比的信号。

我在python中需要一些帮助。请帮帮我。

File 1                                                          
    2                                                       
    USER Name                                                       
    7/31/2015 0:00                                                      
    <XXXXXXX>                                                       
    1   Signal_1        10                                          
    2   Signal_2        1   2   3   4   5                           
    3   Signal_3        X   5   10  15  20  25  Y   6   11  16  21  26
    1   Signal_4        20                                          
    1   Signal_5        30                                          
    2   Signal_6        6   7   8   9   10  11  12  13              
    2   Signal_7        55  1.05    1.6 14.1                                
    3   Signal_8        X   30  40  50  60  40  Y   14  15  26  14  26
    2   Signal_9        1   1   2   3   2                           
    1   Signal_10       40                                          


File 2                                                          
    2                                                       
    USER Name                                                       
    7/31/2015 0:00                                                      
    <XXXXXXX>                                                       
    3   Signal_3        X   20  10  15  17  25  Y   6   11  16  21  26
    1   Signal_5        5                                           
    2   Signal_7        55  1.05    1.6 14.1                                
    1   Signal_1        10                                          
    3   Signal_8        X   30  40  50  60  40  Y   14  15  26  14  26
    1   Signal_10       14                                          
    2   Signal_9        1   1   2   3   2                           
    2   Signal_6        6   7   8   59  10  15  12  13              
    1   Signal_4        20                                          
    2   Signal_2        1   2   3   4   5                           


Result:

File                                                        
3   Signal_3        X   5   10  15  20  25  Y   6   11  16  21  26
1   Signal_5        30                                          
1   Signal_10       40                                          
2   Signal_6        6   7   8   9   10  11  12  13              

File 2                                                      
3   Signal_3        X   20  10  15  17  25  Y   6   11  16  21  26
1   Signal_5        5                                           
1   Signal_10       14                                          
2   Signal_9        1   1   2   3   2           

2 个答案:

答案 0 :(得分:1)

如果你想检查相当精确的比较,你可以很容易地使用集合:

def sigset(fname):
    with open(fname, 'rb') as f:
        data = set(' '.join(line.split()) for line in f
                   if 'Signal' in line)
    return data

s1 = sigset('sig1.txt')
s2 = sigset('sig2.txt')

print('File 1')
for line in sorted(s1 - s2):
    print(line)
print('')

print('File 2')
for line in sorted(s2 - s1):
    print(line)

答案 1 :(得分:0)

with open('Sample1.csv', 'r') as t1, open('Sample2.csv', 'r') as t2:
    fileone = t1.readlines()
    filetwo = t2.readlines()
print fileone
print filetwo

with open('update.csv', 'w') as outFile:
    for line in filetwo:
        if line not in fileone:
            outFile.write(line)
    for line in fileone:
        if line not in filetwo:
            outFile.write(line)