go-csv-tag alternatives and similar packages
Based on the "Files" category.
Alternatively, view go-csv-tag alternatives based on common mentions on social networks and blogs.
-
go-storage
A vendor-neutral storage library for Golang: Write once, run on every storage service. -
bigfile
Bigfile -- a file transfer system that supports http, rpc and ftp protocol https://bigfile.site -
go-exiftool
Golang wrapper for Exiftool : extract as much metadata as possible (EXIF, ...) from files (pictures, pdf, office documents, ...) -
skywalker
A package to allow one to concurrently go through a filesystem with ease -
concurrent-writer
Highly concurrent drop-in replacement for bufio.Writer -
fileconversion
A Go library to convert various file formats to plaintext and provide related functions -
shred
This is a libary to mimic the functionallity of the linux shred command. -
go-staticfiles
Collects assets (css, js, images...) from a different locations and tags file names with a hash for easy versioning and aggressive caching.
Clean code begins in your IDE with SonarLint
Do you think we are missing an alternative of go-csv-tag or a related project?
README
go-csv-tag
Read csv file from Go using tags
The project is in maintenance mode.
It is kept compatible with changes in the Go ecosystem but no new features will be developed. PR could be accepted.
Install
go get github.com/artonge/go-csv-tag/v2
Example
Load
The csv file:
name, ID, number
name1, 1, 1.2
name2, 2, 2.3
name3, 3, 3.4
Your Go code:
type Demo struct { // A structure with tags
Name string `csv:"name"`
ID int `csv:"ID"`
Num float64 `csv:"number"`
}
tab := []Demo{} // Create the slice where to put the content
err := csvtag.LoadFromPath(
"file.csv", // Path of the csv file
&tab, // A pointer to the create slice
csvtag.CsvOptions{ // Load your csv with optional options
Separator: ';', // changes the values separator, default to ','
Header: []string{"name", "ID", "number"}, // specify custom headers
})
You can also load the data from an io.Reader with:
csvtag.LoadFromReader(youReader, &tab)
Or from a string with:
csvtag.LoadFromString(yourString, &tab)
Dump
Your Go code:
type Demo struct { // A structure with tags
Name string `csv:"name"`
ID int `csv:"ID"`
Num float64 `csv:"number"`
}
tab := []Demo{ // Create the slice where to put the content
Demo{
Name: "some name",
ID: 1,
Num: 42.5,
},
}
err := csvtag.DumpToFile(tab, "csv_file_name.csv")
You can also dump the data into an io.Writer with:
err := csvtag.DumpToWriter(tab, yourIOWriter)
Or dump to a string with:
str, err := csvtag.DumpToString(tab)
The csv file written:
name,ID,number
some name,1,42.5