需要一点帮助,我有两个信息源,信息由不同的程序导出到两个不同的 CSV 文件。它们应该包含相同的信息,但这是需要检查的内容。
因此我想做的事情如下:
- 从这两个文件中获取信息。
- 比较
- 输出任何差异以及差异所在的文件。(例如,文件 A 包含此内容,但文件 B 不包含此内容,反之亦然)。
文件有 200,000 行奇数,因此需要尽可能有效。
尝试使用 Excel 执行此操作,但事实证明太复杂了,我真的很难找到一种编程方式。
最佳答案
假设文件真的应该相同,直到文本限定符、行的顺序以及每个文件中包含的行数,最简单的方法可能是简单地遍历两者将文件放在一起并比较每一行。
using (StreamReader f1 = new StreamReader(path1))
using (StreamReader f2 = new StreamReader(path2)) {
var differences = new List<string>();
int lineNumber = 0;
while (!f1.EndOfStream) {
if (f2.EndOfStream) {
differences.Add("Differing number of lines - f2 has less.");
break;
}
lineNumber++;
var line1 = f1.ReadLine();
var line2 = f2.ReadLine();
if (line1 != line2) {
differences.Add(string.Format("Line {0} differs. File 1: {1}, File 2: {2}", lineNumber, line1, line2);
}
}
if (!f2.EndOfStream) {
differences.Add("Differing number of lines - f1 has less.");
}
}
关于C# - 比较两个 CSV 文件并给出输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3458355/