使用 Python 查找两个 CSV 文件中的差异

Looking for differences in two CSV files with Python

我有一个脚本可以抓取网站并将特定网站名称放入 csv。有些日子它有 0 个站点名称,有些日子它有更多的 4。我有另一个脚本,它获取今天的 csv 和昨天的 csv 并比较两者。如果今天的 csv 中的网站名称也在昨天的 csv 中,我想将这些网站名称输出到不同的 txt 文件中。我有:

with open(filepath + today + filename, 'r') as t1, open(filepath + yesterday + filename, 'r') as t2:
    fileone = t1.readlines()
    filetwo = t2.readlines()

with open(checklistFile, 'w') as outfile:
    for line in fileone:
        if line in file:
            outfile.write(line)
            print("bad")
        else:
            outfile.write("good")
            print("good")

这仅在 csvs 具有相同行数且顺序相同时才有效。例如,如果今天有“site1、site2、site3”而昨天有“site4、site1、site5”,那么这个脚本就会错过它。任何帮助,将不胜感激。我是 运行 Python 2.7,所以我不能使用 csv-diff。

您可以使用 pandas 实现此目的:

import pandas as pd
df_today = pd.read_csv(filepath + today + filename)
df_yesterday = pd.read_csv(filepath + yesterday + filename)
df_common = pd.concat([df_today,df_yesterday])
duplicates_df = df_common[df_common.duplicated()]
duplicates_df.to_csv(checklistFile, index=False)