可以使用标准库中的 filepath 和 ioutil 包来完成这个任务。

步骤如下:

  1. 使用 filepath 包中的 Walk 函数遍历指定目录下的所有文件和目录。
  2. 对于每个文件,判断其是否为 runTest.log 文件。
  3. 如果是,使用 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 对象,它可以逐行读取文件内容,并且可以使用缓冲区来提高性能

如何用 golang 遍历指定目录下所有文件并读取其中runTestlog文件每行内容

原文地址: https://www.cveoy.top/t/topic/hgr8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录