บทที่ 9: การติดต่อฐานข้อมูลเบื้องต้น

9.4 การใช้ไฟล์ CSV เป็นฐานข้อมูลแบบง่าย โดยใช้ Library CSV ใน Python

ไฟล์ CSV (Comma-Separated Values) เป็นรูปแบบไฟล์ที่ใช้จัดเก็บข้อมูลแบบตาราง โดยแต่ละแถวของข้อมูลจะแสดงในหนึ่งบรรทัด และคอลัมน์ต่าง ๆ จะถูกแยกด้วยเครื่องหมายจุลภาค (,) ไฟล์ CSV เป็นวิธีการจัดเก็บข้อมูลที่ง่ายและแพร่หลาย เหมาะสำหรับการใช้งานทั่วไปและการแลกเปลี่ยนข้อมูลในรูปแบบที่มนุษย์อ่านได้ นอกจากนี้ Python ยังมีLibrary csv ที่ช่วยให้เราสามารถอ่านและเขียนข้อมูลจากไฟล์ CSV ได้อย่างสะดวก

ในบทเรียนนี้ เราจะเรียนรู้วิธีการใช้ไฟล์ CSV เป็นฐานข้อมูลแบบง่าย ๆ โดยใช้ Library csv ของ Python เพื่ออ่านและเขียนข้อมูลในไฟล์ CSV

1. การทำงานกับLibrary csv ใน Python

ก่อนอื่น เราต้องนำเข้าLibrary csv ซึ่งเป็นLibraryมาตรฐานของ Python ที่ไม่ต้องติดตั้งเพิ่มเติม สามารถใช้ในการอ่านและเขียนไฟล์ CSV ได้อย่างมีประสิทธิภาพ

import csv

2. การอ่านข้อมูลจากไฟล์ CSV

การอ่านข้อมูลจากไฟล์ CSV ทำได้โดยใช้ฟังก์ชัน csv.reader() ซึ่งจะอ่านข้อมูลและคืนค่าเป็นรายการ (list) ที่มีแต่ละแถวของข้อมูลในไฟล์ CSV โดยการแยกข้อมูลออกเป็นคอลัมน์ต่าง ๆ

ตัวอย่างการอ่านข้อมูลจากไฟล์ CSV

สมมติว่าเรามีไฟล์ data.csv ที่มีข้อมูลดังนี้:

name,age,email
Alice,30,This email address is being protected from spambots. You need JavaScript enabled to view it.
Bob,25,This email address is being protected from spambots. You need JavaScript enabled to view it.
Charlie,35,This email address is being protected from spambots. You need JavaScript enabled to view it.

เราสามารถใช้โค้ดต่อไปนี้ในการอ่านข้อมูลจากไฟล์ CSV:

import csv

# เปิดไฟล์ CSV ในโหมดอ่าน
with open('data.csv', newline='') as csvfile:
    csvreader = csv.reader(csvfile)
    
    # อ่านและแสดงข้อมูลทีละแถว
    for row in csvreader:
        print(row)

อธิบาย: ฟังก์ชัน csv.reader() ใช้สำหรับอ่านข้อมูลจากไฟล์ data.csv ซึ่งแต่ละแถวจะถูกเก็บเป็นลิสต์ของข้อมูลในแต่ละคอลัมน์ โค้ดนี้จะพิมพ์ข้อมูลในแต่ละแถวออกมาเป็นลิสต์

ผลลัพธ์จะเป็นดังนี้:

['name', 'age', 'email']
['Alice', '30', This email address is being protected from spambots. You need JavaScript enabled to view it.']
['Bob', '25', This email address is being protected from spambots. You need JavaScript enabled to view it.']
['Charlie', '35', This email address is being protected from spambots. You need JavaScript enabled to view it.']

3. การเขียนข้อมูลลงในไฟล์ CSV

การเขียนข้อมูลลงในไฟล์ CSV สามารถทำได้โดยใช้ฟังก์ชัน csv.writer() ซึ่งจะเขียนข้อมูลจากลิสต์ลงในไฟล์ CSV ทีละแถว

ตัวอย่างการเขียนข้อมูลลงในไฟล์ CSV

import csv

# เปิดไฟล์ CSV ในโหมดเขียน
with open('output.csv', 'w', newline='') as csvfile:
    csvwriter = csv.writer(csvfile)
    
    # เขียนหัวข้อของตาราง
    csvwriter.writerow(['name', 'age', 'email'])
    
    # เขียนข้อมูลลงในไฟล์
    csvwriter.writerow(['Alice', 30, This email address is being protected from spambots. You need JavaScript enabled to view it.'])
    csvwriter.writerow(['Bob', 25, This email address is being protected from spambots. You need JavaScript enabled to view it.'])
    csvwriter.writerow(['Charlie', 35, This email address is being protected from spambots. You need JavaScript enabled to view it.'])

อธิบาย: โค้ดนี้จะสร้างไฟล์ output.csv และเขียนข้อมูลลงในไฟล์ทีละแถว โดยใช้ฟังก์ชัน writerow() ซึ่งจะรับข้อมูลในรูปแบบของลิสต์

ไฟล์ output.csv จะมีข้อมูลดังนี้:

name,age,email
Alice,30,This email address is being protected from spambots. You need JavaScript enabled to view it.
Bob,25,This email address is being protected from spambots. You need JavaScript enabled to view it.
Charlie,35,This email address is being protected from spambots. You need JavaScript enabled to view it.

4. การอ่านและเขียนข้อมูลแบบมี Header

บ่อยครั้งที่ไฟล์ CSV จะมีหัวข้อของคอลัมน์ (Header) อยู่ในแถวแรก เราสามารถใช้ csv.DictReader() และ csv.DictWriter() เพื่ออ่านและเขียนข้อมูลในรูปแบบของดิกชันนารี (Dictionary) ซึ่งทำให้ง่ายต่อการจัดการข้อมูลโดยใช้ชื่อคอลัมน์เป็นกุญแจ (key)

ตัวอย่างการอ่านข้อมูลด้วย DictReader

import csv

# เปิดไฟล์ CSV ในโหมดอ่าน
with open('data.csv', newline='') as csvfile:
    csvreader = csv.DictReader(csvfile)
    
    # อ่านและแสดงข้อมูลทีละแถว
    for row in csvreader:
        print(row)

อธิบาย: DictReader จะอ่านไฟล์ CSV โดยใช้หัวข้อคอลัมน์เป็นกุญแจในดิกชันนารี ดังนั้นแต่ละแถวจะถูกเก็บเป็นดิกชันนารีที่ใช้ชื่อคอลัมน์เป็นกุญแจและข้อมูลในแถวเป็นค่า

ผลลัพธ์จะเป็นดังนี้:

{'name': 'Alice', 'age': '30', 'email': This email address is being protected from spambots. You need JavaScript enabled to view it.'}
{'name': 'Bob', 'age': '25', 'email': This email address is being protected from spambots. You need JavaScript enabled to view it.'}
{'name': 'Charlie', 'age': '35', 'email': This email address is being protected from spambots. You need JavaScript enabled to view it.'}

ตัวอย่างการเขียนข้อมูลด้วย DictWriter

import csv

# เปิดไฟล์ CSV ในโหมดเขียน
with open('output.csv', 'w', newline='') as csvfile:
    fieldnames = ['name', 'age', 'email']
    csvwriter = csv.DictWriter(csvfile, fieldnames=fieldnames)
    
    # เขียนหัวข้อคอลัมน์
    csvwriter.writeheader()
    
    # เขียนข้อมูลลงในไฟล์
    csvwriter.writerow({'name': 'Alice', 'age': 30, 'email': This email address is being protected from spambots. You need JavaScript enabled to view it.'})
    csvwriter.writerow({'name': 'Bob', 'age': 25, 'email': This email address is being protected from spambots. You need JavaScript enabled to view it.'})
    csvwriter.writerow({'name': 'Charlie', 'age': 35, 'email': This email address is being protected from spambots. You need JavaScript enabled to view it.'})

อธิบาย: DictWriter ช่วยให้เราสามารถเขียนข้อมูลลงในไฟล์ CSV โดยใช้ชื่อคอลัมน์เป็นกุญแจในดิกชันนารี ทำให้การจัดการข้อมูลเป็นระเบียบมากขึ้นและง่ายต่อการอ่านข้อมูลจากไฟล์

5. การใช้ไฟล์ CSV เป็นฐานข้อมูลแบบง่าย

แม้ว่าไฟล์ CSV จะไม่ใช่ฐานข้อมูลในความหมายที่สมบูรณ์ แต่เราสามารถใช้ไฟล์ CSV ในการเก็บข้อมูลแบบตารางได้ ซึ่งเหมาะสำหรับการใช้งานในโปรแกรมขนาดเล็กหรือเมื่อต้องการแลกเปลี่ยนข้อมูลในรูปแบบง่าย ๆ

ตัวอย่างเช่น เราสามารถสร้างไฟล์ CSV เพื่อเก็บข้อมูลลูกค้า, รายการสินค้า, หรือข้อมูลที่เป็นโครงสร้างง่าย ๆ และอ่านข้อมูลจากไฟล์หรือเขียนข้อมูลลงในไฟล์เมื่อจำเป็น

สรุป

การอ่านและเขียนไฟล์ CSV ใน Python ทำได้ง่ายด้วยLibrary csv ซึ่งช่วยให้เราสามารถจัดการข้อมูลในรูปแบบตารางได้อย่างมีประสิทธิภาพ ไม่ว่าจะเป็นการอ่านข้อมูลจากไฟล์เพื่อใช้ในโปรแกรม หรือการเขียนข้อมูลใหม่ลงในไฟล์ CSV การใช้ไฟล์ CSV เป็นวิธีที่สะดวกและรวดเร็วในการจัดการข้อมูลขนาดเล็กหรือข้อมูลที่ไม่ต้องการระบบฐานข้อมูลที่ซับซ้อน