2016-06-18 21 views
1

Ich habe ein Array von verschiedenen Werten - gibt es eine Möglichkeit, es in CSV-String zu konvertieren und es über fmt.Print auf Stdout, ohne das csv auf eine Datei schreiben?Konvertieren von Array in CSV

Soweit ich weiß, wenn ich einen csv-writer erstellen, muss ich als Datei io-Datei übergeben, gibt es eine Möglichkeit, es einfach auszugeben?

Antwort

4

ja:
for string slice:

package main 

import "encoding/csv" 
import "os" 

func main() { 
    wr := csv.NewWriter(os.Stdout) 
    wr.Write([]string{"test1", "test2", "test3"}) 
    wr.Flush() 
} 

für int (oder jede Scheibe):

package main 

import (
    "encoding/csv" 
    "fmt" 
    "os" 
    "strings" 
) 

func main() { 
    A := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} // []string{"test1", "test2", "test3"} 
    st := strings.Fields(strings.Trim(fmt.Sprint(A), "[]")) 
    wr := csv.NewWriter(os.Stdout) 
    wr.Write(st) 
    wr.Flush() // 0,1,2,3,4,5,6,7,8,9 
} 

eine andere Art und Weise:

package main 

import (
    //"encoding/csv" 
    "fmt" 
    "strings" 
) 

func main() { 
    A := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 
    st := strings.Trim(strings.Join(strings.Fields(fmt.Sprint(A)), ", "), "[]") 
    fmt.Println(st) // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 
} 

Wenn Ihre Daten nicht int sind, wandeln Sie sie in eine Zeichenfolge um, verwenden Sie dann die strings.Join-Funktion.

und sehen:
go/golang: one-liner to transform []int into string