为了账号安全,请及时绑定邮箱和手机立即绑定

Go:读取文件中特定范围的行

Go:读取文件中特定范围的行

Go
万千封印 2021-08-16 15:24:11
我主要需要读取文件中特定范围的行,如果字符串与索引字符串匹配(例如“Hello World!”),则返回 true,但我不知道该怎么做。我知道如何读取单个行和整个文件,但不知道如何读取行范围。是否有任何库可以提供帮助,或者有一个简单的脚本可以做到这一点?任何帮助是极大的赞赏!
查看完整描述

2 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

像这样的东西?


package main


import (

    "bufio"

    "bytes"

    "fmt"

    "os"

)


func Find(fname string, from, to int, needle []byte) (bool, error) {

    f, err := os.Open(fname)

    if err != nil {

        return false, err

    }

    defer f.Close()

    n := 0

    scanner := bufio.NewScanner(f)

    for scanner.Scan() {

        n++

        if n < from {

            continue

        }

        if n > to {

            break

        }

        if bytes.Index(scanner.Bytes(), needle) >= 0 {

            return true, nil

        }

    }

    return false, scanner.Err()

}


func main() {

    found, err := Find("test.file", 18, 27, []byte("Hello World"))

    fmt.Println(found, err)

}


查看完整回答
反对 回复 2021-08-16
?
HUX布斯

TA贡献1876条经验 获得超6个赞

如果您使用的for是遍历一段线,则可以使用类似以下内容的内容


for _,line := range file[2:40] {

    // do stuff

}


查看完整回答
反对 回复 2021-08-16
  • 2 回答
  • 0 关注
  • 399 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信