1
我试图在Go中使用tabwriter程序包在文件中编写制表符分隔值。在Go中编写制表符分隔值
records map[string] []string
file, err := os.OpenFile(some_file, os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
log.Println(err)
}
w := new(tabwriter.Writer)
w.Init(file, 0, 4, 0, '\t', 0)
for _, v := range records {
fmt.Fprintln(w, v[0],"\t",v[1],"\t",v[2],"\t",v[3])
w.Flush()
}
我面临的问题是写入文件的记录有两个额外的空间作为它们的前缀。我添加了调试标志,这是我在文件中得到的:
fname1 | mname1 | lname1 | age1
fname2 | mname2 | lname2 | age2
我无法看到我要去哪里出错。任何帮助表示赞赏。
您是否阅读过关于制表人包的文档?其明确的目的是明确地使用空格编写对齐的文本。您可能想使用'csv'包(https://golang.org/pkg/encoding/csv/#Writer)。 – SirDarius