如何用 golang 遍历指定目录下所有文件并读取其中runTestlog文件每行内容
可以使用标准库中的 filepath 和 ioutil 包来完成这个任务。
步骤如下:
- 使用 filepath 包中的 Walk 函数遍历指定目录下的所有文件和目录。
- 对于每个文件,判断其是否为 runTest.log 文件。
- 如果是,使用 ioutil 包中的 ReadFile 函数读取文件内容,并逐行处理。
示例代码如下:
package main
import (
"bufio"
"fmt"
"io/ioutil"
"os"
"path/filepath"
)
func main() {
root := "/path/to/directory"
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
// 判断是否为 runTest.log 文件
if info.IsDir() || info.Name() != "runTest.log" {
return nil
}
// 读取文件内容
content, err := ioutil.ReadFile(path)
if err != nil {
return err
}
// 逐行处理文件内容
scanner := bufio.NewScanner(bytes.NewReader(content))
for scanner.Scan() {
line := scanner.Text()
fmt.Println(line)
}
return nil
})
if err != nil {
fmt.Println(err)
}
}
需要注意的是,如果 runTest.log 文件非常大,逐行读取可能会导致性能问题。此时可以考虑使用 bufio 包中的 Scanner 对象,它可以逐行读取文件内容,并且可以使用缓冲区来提高性能
原文地址: https://www.cveoy.top/t/topic/hgr8 著作权归作者所有。请勿转载和采集!