如何在windows中比较两个csv文件

如何在windows中比较两个csv文件,windows,csv,excel-2010,Windows,Csv,Excel 2010,我需要比较windows7中的两个csv文件。 我如何才能实现这一目标。我想看看这两个文件的区别,比如我们可以在Linux中使用tkdiff。建议: 按Windows+R快捷方式打开Windows的运行提示 键入cmd并按Enter键打开DOS终端cmd窗口 通过运行命令cd C:\path\to\your\directory来更改当前路径,以到达两个CSV文件的位置 提示:要将复制的路径从剪贴板粘贴到DOS终端cmd窗口,您可以(1)右键单击终端窗口,或(2)按Shift+Insert

我需要比较windows7中的两个csv文件。 我如何才能实现这一目标。我想看看这两个文件的区别,比如我们可以在Linux中使用tkdiff。

建议:

  • 按Windows+R快捷方式打开Windows的运行提示
  • 键入
    cmd
    并按Enter键打开DOS终端cmd窗口
  • 通过运行命令
    cd C:\path\to\your\directory
    来更改当前路径,以到达两个CSV文件的位置
提示:要将复制的路径从剪贴板粘贴到DOS终端cmd窗口,您可以(1)右键单击终端窗口,或(2)按Shift+Insert

  • 最后,要比较这两个文件,请运行
    fc filename1.csv filename2.csv>outfile.txt
    fc
    代表“文件比较”)。
    该命令还将把比较结果记录到同一文件夹中的文本文件
    outfile.txt
    。如果
    outfile.txt
    不存在,将自动创建它

我发现另一个选项非常有用,如前所述:

findstr/v/g:“file1.csv”“file2.csv”

其中,
/v
开关返回差异,
/g:
从file1.csv获取搜索字符串。您可以使用
findstr/?
获取更多帮助

您还可以使用以下方法将差异打印到文件中:

findstr/v/g:“file1.csv”“file2.csv>diff.csv”

另外,我发现
findstr
fc
准确得多,输出的可读性也更高


更新
这可以很好地处理“较小”的文件。在较大的文件上,可能会出现
内存不足
错误。在本例中,我不得不转向Python和数据帧。只是一个友好的提醒…

我今天这么做了

假设我们有两个csv文件X和Y

具有a、b、c列的X
具有a、b、c列的Y

这些行的顺序不同,它们分散在csv文件中

我在excel表格中导入了这两个。 我先按c列排序,然后按b列排序,然后按a列排序。 你可以按你喜欢的顺序去


通过notepad++的Compare插件/Beyond Compare比较已排序的文件。

您也可以使用Powershell执行相同的操作,如果您位于只读文件夹中,这将非常有用

compare-object -ReferenceObject (Get-Content filename1.CSV) -DifferenceObject (Get-content filename2.CSV)

通过在文件夹的地址栏中键入Powershell,您可以直接在文件夹中启动Powershell,而无需通过cd导航。

C'mon,你是认真的吗?你试过了吗?是的,我试过谷歌,但没有找到满意的答案,这就是为什么我在这里问:PYou也可以使用notepad++的比较插件。比较2个CSV实际上相当困难,因为你必须正确地转义每个字段,而且你可能希望根据一个键比较每一行,而不是像一般文本比较那样逐行比较。
fc
是一个可怕的文件比较工具。自己试试看:创建两个相同的csv文件并保存它们,然后在其中一个文件中添加新的第一行,看看会发生什么。