Golang笔记

go 与python 遍历目录性能对比

相对python 来说快1/3,用python的Walk 来遍历需要30分钟,go Walk 用17分钟。

func scanFile(rootPath string) map[string]string {
    fileMD5 := make(map[string]string)
    rootPrefix := strings.TrimSuffix(rootPath, "/")
    filepath.Walk(rootPath, func(path string, info os.FileInfo, err error) error {
        // fmt.Println("Processing:", path)
        //这里是文件过滤器
        if strings.HasSuffix(path, ".php") {
            //fmt.Println(path)
            furi := strings.TrimPrefix(path, rootPrefix)
            file, inerr := os.Open(path)
            if inerr == nil {
                md5h := md5.New()
                io.Copy(md5h, file)
                md5v := fmt.Sprintf("%x", md5h.Sum(nil))
                //fmt.Println(furi, md5v)
                fileMD5[furi] = md5v
            }
        }
        return err
    })

    return fileMD5
}
本文网址: https://golangnote.com/topic/97.html (转载注明出处)
关于GolangNote:记录在工作中使用golang 遇到、面临的相关问题及解决方法。如果你在这里获得一些知识或信息,解决你的编程问题,请考虑捐赠给不幸的人或者你喜欢的慈善机构,除捐赠外,种植树木、志愿服务或减少排碳的行为也很有益处。如果你有任何问题可以在下面 留言
Be the first to comment!
Captcha image
Relative Articles