我使用带有标记os.OpenFile
和os.Create
的{{1}}创建了一个csv文件(假设为“output.csv”)。我正在对这个文件进行一系列操作。在每次迭代中,我都需要重写csv文件的内容(“output.csv”)。但我的代码附加到csv文件。
答案 0 :(得分:3)
在每次重写之前,截断文件并寻找开头。 例如:
package main
import (
"fmt"
"os"
)
func main() {
if f, err := os.Create("test.csv"); err == nil {
defer f.Close()
for n := 10; n > 0; n-- {
f.Truncate(0) // comment or uncomment
f.Seek(0, 0) // these lines to see the difference
for i := 0; i < n; i++ {
f.WriteString(fmt.Sprintf("%d\n", i))
}
}
} else {
fmt.Println(err)
}
}
答案 1 :(得分:0)
以读写(os.RDWR)模式打开文件追加到文件。
溶胶: 以只读模式打开文件( 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