func New(value interface{}, config ...Config) *CSV {
	csv := &CSV{}
	if f, ok := value.(string); ok {
		csv.filename = f
	} else {
		if r, ok := value.(io.ReadCloser); ok {
			csv.reader = r
		}
		if w, ok := value.(io.WriteCloser); ok {
			csv.writer = w
		}
	}
	for _, cfg := range config {
		csv.config = cfg
	}
	return csv
}
New initialize CSV backend, config is option, the last one will be used if there are more than one configs
package csv
import (
	"errors"
	"io"
	"os"
	"path/filepath"
)