go从txt文件读取第二行之后的数据为字符串形式逐行用空格完成切片,把切片中数据转为浮点数
时间: 2024-02-13 19:03:16 浏览: 187
好的,可以使用以下代码实现:
```go
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
// 打开文件
file, err := os.Open("data.txt")
if err != nil {
panic(err)
}
defer file.Close()
// 逐行读取文件内容
scanner := bufio.NewScanner(file)
for i := 1; scanner.Scan(); i++ {
if i > 1 {
// 将字符串按空格分割成切片
line := scanner.Text()
fields := strings.Fields(line)
// 将切片中的数据转换为浮点数
var nums []float64
for _, field := range fields {
num, err := strconv.ParseFloat(field, 64)
if err != nil {
panic(err)
}
nums = append(nums, num)
}
// 打印转换后的结果
fmt.Println(nums)
}
}
if err := scanner.Err(); err != nil {
panic(err)
}
}
```
其中,`file`变量代表打开的文件,`scanner`变量用于逐行读取文件内容。通过`for`循环遍历每一行数据,当行号大于1时(也就是从第二行开始),将读取的字符串按空格分割成切片,然后遍历切片中的每个元素,将其转换为浮点数并存储到`nums`切片中。最后,打印`nums`切片中的数据即可。需要注意的是,为了防止文件读取出错,需要在代码中添加相关的错误处理逻辑。
阅读全文