如何按指定列内容分组重排CSV文件?Golang优化实现咨询
寻求Golang按CSV最后一列分组重排的更优实现方案
我是Golang新手,现在需要实现按CSV文件最后一列(状态值为passed、failed、skipped)的内容进行分组重排的功能。目前已经写出了能正常运行的代码,但觉得这个方案不够优雅高效,附上当前代码、测试数据和运行结果,想请教有没有更优的实现方式。
原始CSV数据
test,test-cat,skipped test,test-cat,failed test,test-cat,passed test,test-cat,skipped test,test-cat,passed test,test-cat,failed
预期结果
test,test-cat,skipped test,test-cat,skipped test,test-cat,failed test,test-cat,failed test,test-cat,passed test,test-cat,passed
当前实现代码
package main import ( "bufio" "fmt" "os" "strings" ) func main() { var FailStat, SkipStat,PassStat []string file, err := os.Open("test.csv") if err != nil { fmt.Println(err) } else { scanner := bufio.NewScanner(file) for scanner.Scan() { line := scanner.Text() if strings.Contains(line, "failed") { FailStat = append(FailStat, line) } if strings.Contains(line, "skipped") { SkipStat = append(SkipStat, line) } if strings.Contains(line, "passed") { PassStat = append(PassStat, line) } } } file.Close() var finalstat []string finalstat = append(SkipStat, FailStat...) finalstat = append(finalstat, PassStat...) for _, line := range finalstat { fmt.Println(line) } }
测试运行结果
$ ./readfile test,test-cat,skipped test,test-cat,skipped test,test-cat,failed test,test-cat,failed test,test-cat,passed test,test-cat,passed
内容的提问来源于stack exchange,提问作者AndrewS
相关产品推荐
相关产品推荐

