要修改CSV文件中特定行和列的值,您可以使用以下步骤:

  1. 打开CSV文件并读取其内容。可以使用os.Open()函数打开文件,然后使用csv.NewReader()函数创建一个csv.Reader对象来读取CSV文件的内容。
file, err := os.Open("file.csv")
if err != nil {
    log.Fatal(err)
}
defer file.Close()

reader := csv.NewReader(file)
rows, err := reader.ReadAll()
if err != nil {
    log.Fatal(err)
}
  1. 根据需要修改特定行和列的值。

    您可以使用索引来访问特定的行和列。例如,要修改第2行第3列的值,可以使用rows[1][2]

rows[1][2] = "new value"
  1. 将修改后的内容写回CSV文件。可以使用os.Create()函数创建一个新的文件,然后使用csv.NewWriter()函数创建一个csv.Writer对象来写入CSV文件的内容。
newFile, err := os.Create("newfile.csv")
if err != nil {
    log.Fatal(err)
}
defer newFile.Close()

writer := csv.NewWriter(newFile)
err = writer.WriteAll(rows)
if err != nil {
    log.Fatal(err)
}

writer.Flush()
if err := writer.Error(); err != nil {
    log.Fatal(err)
}

完整的示例代码如下:

package main

import (
	"encoding/csv"
	"log"
	"os"
)

func main() {
	file, err := os.Open("file.csv")
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()

	reader := csv.NewReader(file)
	rows, err := reader.ReadAll()
	if err != nil {
		log.Fatal(err)
	}

	rows[1][2] = "new value"

	newFile, err := os.Create("newfile.csv")
	if err != nil {
		log.Fatal(err)
	}
	defer newFile.Close()

	writer := csv.NewWriter(newFile)
	err = writer.WriteAll(rows)
	if err != nil {
		log.Fatal(err)
	}

	writer.Flush()
	if err := writer.Error(); err != nil {
		log.Fatal(err)
	}
}

请注意,上述代码将创建一个新的CSV文件newfile.csv,并将修改后的内容写入该文件。如果您希望在原始文件上进行修改,可以覆盖原始文件

golang 修改csv 指定行数和列的数值

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

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