4.11.1 مقدمه #
CSV یکی از فرمتهای متداول برای ذخیره دادههای جدولی است. خروجی اکثر برنامههای قابلیت دستکاری داده، همراه با نرمافزارهای آفیس، به فرمت CSV تولید میشود. فرمت CSV چندین ستون در یک ردیف را با استفاده از کاما (,) جدا کرده و هر ردیف را با استفاده از عبارت جدید (newline) جدا میکند.
در زبان برنامهنویسی Go نیز پکیج encoding/csv وجود دارد که در آن، توابع مربوط به خواندن و نوشتن دادههای CSV به صورت دستی یا از طریق پروندهها فراهم شده است. با استفاده از این پکیج، میتوان دادههای CSV را به دادههای جدولی تبدیل کرد و برعکس.
به عنوان مثال، در ادامه یک فایل CSV به نام “data.csv” حاوی اطلاعات چند شخص را در نظر بگیرید:
Name,Age,City
John,25,New York
Jane,30,San Francisco
Bob,40,Los Angeles
4.11.2 نحوه خواندن فایل csv #
برای خواندن فایل csv میتوان با استفاده از پکیج encoding/csv پرونده CSV را باز کرد:
1package main
2
3import (
4 "encoding/csv"
5 "fmt"
6 "os"
7)
8
9func main() {
10 f, err := os.Open("data.csv")
11 if err != nil {
12 panic(err)
13 }
14
15 r := csv.NewReader(f)
16 records, err := r.ReadAll()
17 if err != nil {
18 panic(err)
19 }
20
21 for _, row := range records {
22 for _, col := range row {
23 fmt.Print(col, "\t")
24 }
25 fmt.Println()
26 }
27}
در این کد، تابع os.Open برای باز کردن پرونده CSV استفاده میشود. یک رابط csv.Reader ایجاد شده و یک رشته ساختارمند، پرونده CSV را میخواند. سپس با استفاده از یک حلقه، دادههای جدولی چاپ میشود.
فرادادههای CSV بسیار گسترده هستند و میتوانند شامل شماره دسته، توضیحات، یادداشتهای شخصی و غیره باشند. برای کار با این نوع دادهها، پکیج encoding/csv امکاناتی مانند تنظیمات csv.Reader را فراهم میکند، که در آن، میتوانیم تنظیماتی مانند علامتگذاری مناسب فایل CSV و دیگر علامتگذاریها را بهبود ببخشیم.