golang 修改csv 指定行数和列的数值
要修改CSV文件中特定行和列的值,您可以使用以下步骤:
- 打开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)
}
-
根据需要修改特定行和列的值。
您可以使用索引来访问特定的行和列。例如,要修改第2行第3列的值,可以使用
rows[1][2]。
rows[1][2] = "new value"
- 将修改后的内容写回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,并将修改后的内容写入该文件。如果您希望在原始文件上进行修改,可以覆盖原始文件
原文地址: https://www.cveoy.top/t/topic/hUA7 著作权归作者所有。请勿转载和采集!