无法在 Go 中替换 csv 文件的内容

我创建了一个 csv 文件(假设为“output.csv”),使用os.OpenFile标志os.Createos.RDWR. 我正在对这个文件进行一系列操作。在每次迭代中,我都需要重写 csv 文件(“output.csv”)的内容。但我的代码附加到 csv 文件。


郎朗坤
浏览 153回答 2
2回答

守着星空守着你

在每次重写之前,截断文件并寻找到开头。例子:package mainimport (&nbsp; &nbsp; "fmt"&nbsp; &nbsp; "os")func main() {&nbsp; &nbsp; if f, err := os.Create("test.csv"); err == nil {&nbsp; &nbsp; &nbsp; &nbsp; defer f.Close()&nbsp; &nbsp; &nbsp; &nbsp; for n := 10; n > 0; n-- {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; f.Truncate(0) // comment or uncomment&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; f.Seek(0, 0)&nbsp; // these lines to see the difference&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for i := 0; i < n; i++ {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; f.WriteString(fmt.Sprintf("%d\n", i))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; fmt.Println(err)&nbsp; &nbsp; }}

慕斯709654

以读写(os.RDWR)模式打开文件附加到文件。Sol:以只读模式(os.RDONLY)打开文件进行读取并在读取后关闭它。csvfile ,_:= os.OpenFile("output.csv", os.O_RDONLY|os.O_CREATE, 0777)csvfile.Close()对于写入,以只写模式(os.WRONLY)打开文件并在写入后关闭它,这将覆盖文件而不是附加。csvfile ,_:= os.OpenFile("output.csv", os.O_WRONLY|os.O_CREATE, 0777)csvfile.Close()对于附加,您可以使用os.APPEND
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go