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

时间:2015-11-04 13:38:30

标签: windows csv excel-2010

我需要比较windows7中的两个csv文件。 我该如何着手实现这一目标。我想看看两个文件的不同之处,比如我们可以在Linux中使用tkdiff。

4 个答案:

答案 0 :(得分:8)

建议:

  • Windows + R 快捷方式打开窗口'运行提示
  • 键入cmd并按 Enter 打开 DOS终端 cmd窗口
  • 通过运行命令cd C:\path\to\your\directory来更改当前路径以到达两个CSV文件的位置

提示:要将复制的路径从剪贴板粘贴到 DOS终端 cmd窗口,您可以(1)右键单击终端窗口,或者(2)按 + 插入

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

答案 1 :(得分:3)

这是另一个我发现非常有用的选项,如here所述:

findstr /v /g:"file1.csv" "file2.csv"

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

您还可以使用

将差异打印到文件

findstr /v /g:"file1.csv" "file2.csv > diffs.csv"

顺便说一句,我发现findstr更准确,输出比fc更具可读性。


更新
这适用于较小的'较小的'文件。您可能会在较大的文件上收到out of memory错误。在这种情况下,我不得不求助于Python和数据帧。只是一个友好的抬头......

答案 2 :(得分:0)

我今天这样做了。

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

X有列a,b,c
Y有列a,b,c

这些行的顺序不同,并且在csv文件中被删除。

我在excel表中导入了它们。 我首先按列c排序,然后按列b排序,然后按列a排序。 你可以按自己喜欢的任何顺序去。

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

答案 3 :(得分:0)

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

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

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