使用Katalon Studio的Groovy脚本来实现自动化比较两个文件夹下同名的csv文件是否一致,并将比较结果输出到另一个文件中。要求不一致时定位到哪个文件的哪一行数据不一致
时间: 2023-12-03 16:42:10 浏览: 146
可以使用以下的Groovy脚本来比较两个文件夹下同名的csv文件是否一致,并将比较结果输出到另一个文件中:
```groovy
import com.opencsv.CSVReader
import com.opencsv.CSVWriter
// 定义要比较的两个文件夹路径
def folder1 = "path/to/folder1"
def folder2 = "path/to/folder2"
// 定义输出比较结果的文件路径
def resultFile = "path/to/result.csv"
// 定义CSV文件的分隔符
def delimiter = ','
// 获取文件夹1中的所有csv文件
def files1 = new File(folder1).listFiles({file -> file.isFile() && file.getName().endsWith(".csv")})
// 遍历文件夹1中的所有csv文件
files1.each { file1 ->
// 获取文件名
def fileName = file1.getName()
// 构建文件2的路径
def file2 = new File(folder2, fileName)
// 判断文件2是否存在
if (!file2.exists()) {
log.error("文件2不存在:${file2}")
return
}
// 打开文件1和文件2
def reader1 = new CSVReader(new FileReader(file1), delimiter)
def reader2 = new CSVReader(new FileReader(file2), delimiter)
// 读取文件1和文件2的数据
def data1 = reader1.readAll()
def data2 = reader2.readAll()
// 关闭文件1和文件2
reader1.close()
reader2.close()
// 比较文件1和文件2的数据
def diff = []
for (i in 0..<data1.size()) {
def row1 = data1[i]
def row2 = data2[i]
if (row1 != row2) {
diff.add([fileName, i + 1, row1, row2])
}
}
// 将比较结果输出到文件
if (!diff.isEmpty()) {
def writer = new CSVWriter(new FileWriter(resultFile), delimiter)
writer.writeNext(["文件名", "行号", "文件1数据", "文件2数据"])
diff.each { row ->
writer.writeNext(row.flatten())
}
writer.close()
}
}
```
以上的脚本会逐个比较两个文件夹下同名的csv文件,并将比较结果输出到指定的文件中。如果有不一致的数据,会在输出文件中标出哪个文件的哪一行数据不一致。
阅读全文