如何拆分 .txt 文件的行并将它们添加到 Go 中的切片中?

这些天我正在学习 Go,我正在尝试读取一个包含 URL 列表的文件,以便我可以向它们发送一个简单的 GET 请求。所以,我需要阅读列表,然后将列表中的行添加为切片中的元素。但是,我得到了一个奇怪的输出。下面是我的代码和 .txt 文件。


代码:


func openFile() {

    urls := make([]string, 3)

    for _, filename := range os.Args[1:] {

        urlsBytes, err := ioutil.ReadFile(filename)


        if err != nil {

            fmt.Println(err)

        }


        for _, line := range strings.Split(string(urlsBytes), "\n") {

            urls = append(urls, line)


        }


    }

    fmt.Println(urls)


}

文件:


https://www.youtube.com/

https://www.facebook.com/

https://aws.amazon.com/

输出:


go run Main.go test2.txt

 https://aws.amazon.com/]/m/


牧羊人nacy
浏览 148回答 1
1回答

肥皂起泡泡

您可以bufio.Scanner用于轻松读取数据,例如换行符分隔的文本文件。file, err := os.Open("lines.txt")if err != nil {    log.Fatal(err)}defer file.Close()sc := bufio.NewScanner(file)lines := make([]string, 0)// Read through 'tokens' until an EOF is encountered.for sc.Scan() {    lines = append(lines, sc.Text())}if err := sc.Err(); err != nil {    log.Fatal(err)}这也适用于分隔文本上的其他流,因为bufio.NewScanner接受io.Reader.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go