Чтение .tab файла в golang

мне нужно прочитать файл с расширение (.tab) во мой код по которому я пытался это сделать, но он выводит лишь пустое значение

    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        fmt.Println(scanner.Text(), " ////scanner")
    }
    if err := scanner.Err(); err != nil {
        log.Fatal(err)
        return nil, err
    }

Ответы (1 шт):

Автор решения: Pak Uula

Вы бы хоть намекнули, какой именно формат у ваших .tab файлов. Расширения не прибиты гвоздями к форматам, и всякое бывает.

Тем не менее рискну предположить, что у вас файл со значениями, разделёнными знаками табуляции.

Тогда вам поможет пакет encodings/csv. Не смотрите, что в названии пакета фигурирует csv, он умеет читать не только файлы с запятыми. Достаточно сказать ему, что запятая - это табуляция, как он начнет читать файлы с табуляциями.

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

func main() {
    f, err := os.Open("test.tab")
    if err != nil {
        log.Fatal(err)
    }
    r := csv.NewReader(f)
    r.Comma = '\t' // Запятой считать табуляцию
    records, err := r.ReadAll() // прочитать всё содержимое файла за один раз
    if err != nil {
        log.Fatal(err)
    }
    // распечатать построчно
    for lnum, line := range records {
        fmt.Print("Line #", lnum, ":")
        for _, x := range line {
            fmt.Print("|", x)
        }
        fmt.Println()
    }
}

Тестовый файл test.tab был таким:

11  12  13
21  22  23
31  32  33

Результат работы программы:

Line #0:|11|12|13
Line #1:|21|22|23
Line #2:|31|32|33
→ Ссылка