使用 scanner逐行迭代文件,增加每个循环的行数. 示例如下: f,err := os.Open(path) if err != nil { return 0,err } defer f.Close() // Splits on newlines by default. scanner := bufio.NewScanner(f) line := 1 // https://golang
程序名字 countline os 包来获取运行参数 countline . go 没有运行参数的就退出程序 if len(os.Args) != 3 { fmt.Println("countline [Dir] [extention]") return } 计算文件有多少个 ‘\n’ func countFileLine(name string) (count int64, err
首先:修改conf文件,配置要查找什么后缀的文件代码行数 使用方法:countcodeliine filename or nothing(计算可执行程序所在目录) 实现功能: 1,统计代码行数 2,可以根据配置文件(conf)来进行设置要对什么类型的代码进行统计 3,统计每个类型文件行数,和总行数 将来要实现功能: 1,注释行数 2,注释率 3,导出csv功能 源代码:
最近代码规范很烦人。要求一个函数不能超过80行。只能在git pre-commit钩子上检查下了。 这里使用golangci-lint,里面包含了funlen检查器 config.yamllinters-settings: funlen: lines: 80 statements: 40.git/hooks/pre-commit# commentHelper . 自动写注释折行工具
Scan() rows, err := db.Query("SELECT COUNT(*) FROM main_table") if err != nil { log.Fatal(err) } defer rows.Close() var count int for rows.Next() { if err := rows.Scan(&count); err != nil { log
小智 10 Scan() rows, err := db.Query("SELECT COUNT(*) FROM main_table") if err != nil { log.Fatal(err) } defer rows.Close() var count int for rows.Next() { if err := rows.Scan(&count); err != nil {
logrus默认不支持显示文件名和行号,不太友好,但是在v1.2.0版本已经修复。可以通过setReportCaller设置即可显示文件名和行号 补充知识:logrus 的输出设置 O_RDONLY:只读模式(read-only) O_WRONLY:只写模式(write-only) O_RDWR:读写模式(read-write) O_APPEND:追加模式(append) O_CREATE
先看看普通的递归搜索 package main import ( "bufio" "fmt" "io" "os" "strings" "time" ) func main() { path := "D:\\" //搜索路径 key := ".go" //文件名关键字 t := time.Now() fmt.Println(myReadLine(path, key))
path = "C:\\wahaha" key = ".go" func CountLineNum(path, key string) (count int) { files, err := ioutil.ReadDir(path) if err == nil { for _, fileInfo := range files { newPath := path + "\\" +
在开发中,我们有时候想要统计一个文件夹下的所有代码的行数,但是有时候找这样的工具也挺麻烦的。那么就自己实现一个吧。 思路: 1、通过命令行参数获取要统计的代码所在根目录以及代码文件的后缀,比如Go语言是.go C++语言是.cpp,可以同时统计多种类型的文件 2、从根目录开始递归遍历文件:1.如果是目录,就递归遍历;2.如果是普通文件,根据后缀判断是否是要统计的代码的文件