使用Katalon Studio的Groovy脚本来实现自动化比较两个文件夹下同名的csv文件是否一致,并将比较结果输出到另一个文件中。要求不一致时定位到哪个文件的哪一行数据不一致
时间: 2023-12-03 20:42:23 浏览: 22
可以使用以下Groovy脚本来实现:
```groovy
import com.opencsv.CSVReader
import com.opencsv.CSVWriter
// 比较两个csv文件
def compareCsvFiles(String file1, String file2, String resultFile) {
def reader1 = new CSVReader(new FileReader(file1))
def reader2 = new CSVReader(new FileReader(file2))
def writer = new CSVWriter(new FileWriter(resultFile))
// 获取两个csv文件的数据
def data1 = reader1.readAll()
def data2 = reader2.readAll()
// 比较两个csv文件
def differences = []
for (int i = 0; i < data1.size(); i++) {
def row1 = data1[i]
def row2 = data2[i]
if (row1 != row2) {
differences << [i + 1, file1, row1, file2, row2]
}
}
// 将比较结果输出到文件中
if (differences.isEmpty()) {
writer.writeNext(['No differences found'])
} else {
writer.writeNext(['Line', 'File 1', 'Data 1', 'File 2', 'Data 2'])
differences.each { row ->
writer.writeNext(row)
}
}
// 关闭文件读写器
reader1.close()
reader2.close()
writer.close()
}
// 示例使用
compareCsvFiles('file1.csv', 'file2.csv', 'result.csv')
```
这个脚本使用了 `opencsv` 库来读取和写入 csv 文件。在比较两个 csv 文件时,它会将每一行数据进行比较,并记录哪些行数据不一致。最后,它将比较结果输出到另一个文件中,并标明不一致的数据来自哪一个文件的哪一行。