如何读取多个文件并找到文件之间的区别?

时间:2019-08-29 08:17:18

标签: python compare

我有多个CSV文件,我想对其进行比较。除了一些其他更改外,文件内容相同,我想列出这些其他更改。  例如: 文件= [1.csv,2.csv,3.csv] 我想比较1.csv和2.csv,得到差异并存储在某个地方,然后比较2.csv和3.csv,将差异存储在某个地方。

for dirs in glob.glob(INPUT_PATH+"*"):
    if (os.path.isdir(dirs)):

        for files in glob.glob(dirs+'*/'+'/*.csv'):
        ## list all the csv files but how to read them to get difference.

2 个答案:

答案 0 :(得分:0)

您可以使用熊猫将csv作为数据帧读取到列表中,然后从该列表中进行比较:

import pandas as pd
dfList = []
dfList.append(pd.read_csv('FilePath'))

dfList [0]包含第一个csv文件的内容,依此类推 因此,要在第一个和第二个csv之间进行比较,就必须在dfList [0]和dfList [1]之间进行比较

答案 1 :(得分:0)

第一个功能比较2个文件,第二个功能创建另一个文件,这两个文件之间存在差异。

import os

def compare(file_compared,file_master):
    """
    A = [100,200,300] 
    B = [400,500,100]
    compare(A,B) = [200,300]
    """

    file_compared_list = []
    file_master_list = []

    with open(file_compared,'r') as fc:
        for line in fc:
            file_compared_list.append(line.strip())

    with open(file_master,'r') as fm:
        for line in fm:
            file_master_list.append(line.strip())

    return list(set(file_compared_list) - set(file_master_list))

def create_file(filename):
    diff = compare("file1.csv","file2.csv")

    with open(filename,'w') as f:
        for element in diff:
            f.write(element)

create_file("test.csv")