我需要比较windows7中的两个csv文件。 我该如何着手实现这一目标。我想看看两个文件的不同之处,比如我们可以在Linux中使用tkdiff。
答案 0 :(得分:8)
建议:
cmd
并按 Enter 打开cd C:\path\to\your\directory
来更改当前路径以到达两个CSV文件的位置 提示:要将复制的路径从剪贴板粘贴到 DOS终端 cmd窗口,您可以(1)右键单击终端窗口,或者(2)按移 + 插入
fc filename1.csv filename2.csv > outfile.txt
(fc
代表"文件比较")。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。