我使用“encoding/csv”处理csv输出我如何将数据写入CSV文件与字符串分隔符一样“|-|“csv。Writer只能使用单个字符作为分隔符,因为Writer。逗号定义为int 32,不支持字符串分隔符
pbpqsu0x1#
用于使用'|-|'作为分隔符,您必须编写自己的自定义写函数。我尝试了下面的代码,得到了这样的输出:
import ( "encoding/csv" "fmt" "os" "strings" ) type CustomCSVWriter struct { Writer *csv.Writer Delimiter string } func NewCustomCSVWriter(w *csv.Writer, delimiter string) *CustomCSVWriter { return &CustomCSVWriter{ Writer: w, Delimiter: delimiter, } } func (c *CustomCSVWriter) Write(record []string) error { // Join the fields using the custom delimiter joinedRecord := strings.Join(record, c.Delimiter) // Write the joined record to the CSV writer return c.Writer.Write([]string{joinedRecord}) } func main() { file, err := os.Create("output.csv") if err != nil { fmt.Println("Error creating file:", err) return } defer file.Close() writer := csv.NewWriter(file) // Set the custom delimiter customDelimiter := "|-|" customWriter := NewCustomCSVWriter(writer, customDelimiter) data := [][]string{ {"Alice", "25", "New York"}, {"Bob", "30", "San Francisco"}, {"Charlie", "28", "Chicago"}, } for _, record := range data { if err := customWriter.Write(record); err != nil { fmt.Println("Error writing record:", err) return } } customWriter.Writer.Flush() if err := customWriter.Writer.Error(); err != nil { fmt.Println("Error flushing CSV writer:", err) return } fmt.Println("CSV data written to output.csv") }*
字符串我希望这就是你想要的。
Alice|-|25|-|New York Bob|-|30|-|San Francisco Charlie|-|28|-|Chicago
型
1条答案
按热度按时间pbpqsu0x1#
用于使用'|-|'作为分隔符,您必须编写自己的自定义写函数。我尝试了下面的代码,得到了这样的输出:
字符串
我希望这就是你想要的。
型