在 Golang 中,我们有办法只读取某些列,例如 matlab 中的 textscan,例如:
txt = textscan(op,'%s%*s%s%*s');
Run Code Online (Sandbox Code Playgroud)
谢谢!
如果您的文件基本上是一个 TSV 文件(即带有制表符而不是逗号的 CSV 文件),您可以对 stdlib 的 进行一个非常简单的包装csv.Reader:
type FieldsReader struct {
*csv.Reader
fields []int
}
func (r *FieldsReader) Read() (record []string, err error) {
rec, err := r.Reader.Read()
if err != nil {
return nil, err
}
record = make([]string, len(r.fields))
for i, f := range r.fields {
record[i] = rec[f]
}
return record, nil
}
Run Code Online (Sandbox Code Playgroud)
完整代码和使用示例:http : //play.golang.org/p/YcwOmsMX2B。