2017-07-29 31 views
1

我有兩個csv文件,1 master_test.csv 2. child_test1.csv 3. output.csv如何比較兩個Excel數據並寫入新的Excel文件

master_test.csv包含以下信息

NNN

bbb_12

KKK

CCC

child_test1.csv包含以下信息

NNN

DDD

bbb_13

我需要的child_test1.csv數據比較master_test.csv文件。最後寫入output.csv文件。 我需要出去放如下

NNN NNN找到匹配

DDD ---未發現原材

嗯----找不到原材

bbb_13 bbb_12不匹配或版本更改

我是新來的蟒蛇,截至目前我已經嘗試了下面的代碼, 我能夠實現在同一個coloum找到匹配[但我需要上面output.csv文件]

運行上述代碼我得到輸出作爲

NNN

匹配NNN

之後,但我需要如下的輸出。

NNN NNN找到匹配

DDD ---未發現原材

嗯----找不到原材

bbb_13 bbb_12不匹配或版本變化

可以請任何人都可以引導我

f1 = open("C:\\Python34\\master_test.csv", "r") 
f2 = open("C:\\Python34\\child_test1.csv", "r") 
outFile = open("C:\\Python34\\output.csv", "w") 

fileOne = f1.readlines() 
fileTwo = f2.readlines() 

f1.close() 
f2.close() 
for i in fileOne: 
    for x in fileTwo: 
     if (x == i): 
      outFile.write(i +"Equal " + x) 

回答

1

你可以做這樣的事情

f1 = open("C:\\Python34\\master_test.csv", "r") 
    f2 = open("C:\\Python34\\child_test1.csv", "r") 
    outFile = open("C:\\Python34\\output.csv", "w") 

    fileOne = f1.readlines() 
    fileTwo = f2.readlines() 

    f1.close() 
    f2.close() 
    for i in fileOne: 
     for x in fileTwo: 
      writer = "{} --- Not found Master sheet".format(i) 
      if (x == i): 
       writer = "{} {} match found".format(i,x) 
      outFile.write(writer+'\n') 

This will keep the message in writer always that BlahBlahBlah! not found un master, But in case it is found then the writer will change to Blah Blah match found 


Hello 
thank you for your reply, 
But above code is not solved my issue, 



f1 = open("C:\\Python34\\master_test.csv", "r") 
f2 = open("C:\\Python34\\child_test1.csv", "r") 
outFile = open("C:\\Python34\\Aoutput.csv", "w") 

fileOne = f1.readlines() 
fileTwo = f2.readlines() 

f1.close() 
f2.close() 
outFile.write("Match found\n") 
for i in fileOne: 
    for x in fileTwo: 

     if (x == i): 
     output.write(x)#Match found 

output.write("Match not found") 
#similar way if check 
for i in fileOne: 
    for x in fileTwo: 
     if (x != i): 
     output.write(x) 
#Its writing all the combination, I need only not match from child values i.e 

DDD