Чтение .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