2015-07-03 55 views
-4

我有兩個CSV文件的結果相同。像:我有兩個csv的..需要比較和打印結果,如果python不同

File Result 
a.pdf, malicious 
b.pdf, non-malicious 
c.pdf malicious 

和第二CSV,但有同一個文件的結果,如:

File Result 
a.pdf non-malicious 
b.pdf malicious 
c.pdf non-malicious 

我需要比較兩個打印輸出具有不同結果的文件名......但是在Python ..

+0

什麼你到目前爲止已經試過? – Renzo

+0

我只是谷歌的一些代碼,但他們不準確工作 –

+1

我投票結束這個問題作爲題外話,因爲這不是一個代碼寫作或教程服務。 –

回答

0

我不知道蟒蛇..我告訴你這在Java.We有這麼多的庫從不同的擴展名文件提取數據。假設對於.PDF我們.... Apache PDFBox - A Java PDF Library 你可以在這裏看到它... What is the easiest way to extract data from a PDF?

的.doc文件和.DOCX你有... http://www.coderanch.com/t/627467/java/java/extract-data-Doc-Docx-file

從提取數據一個文本文件,只需你可以使用的FileInputStream和的BufferedInputStream ..... how to extract data from text file in Java

您可以通過線從一個文本文件,但以.pdf和.doc讀取數據線或者.docx文件將採取完整的文本在一個字符串..所以你可以使用StringToken izer或分割功能。

您可以使用此同時讀取兩種文件...

FileInputStream file = new FileInputStream("barcodes.txt");FileInputStream file2 = new FileInputStream("partnumbers.txt"); 
    BufferedInputStream input = null;BufferedInputStream input2 = null; 
    input = new BufferedInputStream(file);input2 = new BufferedInputStream(file2); 
    DataInputStream buffer = new DataInputStream(input); 
    DataInputStream buffer2 = new DataInputStream(input2); 
    PrintWriter out2 = new PrintWriter("output2.xml", "UTF-8"); 

    while(true) 

     { String line1=buffer.readLine(); 
     String line2=buffer2.readLine(); 
     if(line1==null||line2==null) 
      break; 
     System.out.println(line1+" "+line2); 


     } 



} 

...

現在你必須compare.Use春節比較功能來比較兩個字符串。

0

試試這個:

import csv 
    with open('A.csv', newline='') as fileA: 
     with open('B.csv',newline='') as fileB: 
      readA = csv.DictReader(fileA) 
      readB = csv.DictReader(fileB) 
      fields = ['File','Result'] 
      ListDiff = [] 
      for rowA in readA: 
       for rowB in readB: 
        if rowA[fields[0]] == rowB[fields[0]] and rowA[fields[1]] != rowB[fields[1]]: 
         ListDiff.append(rowA[fields[0]]) 
         break 
    print(ListDiff)