0Pricing
Python Academy · บทเรียน

การอ่าน CSV ด้วย csv.reader

อ่านไฟล์ CSV ทีละแถวและเข้าถึงคอลัมน์ด้วยดัชนี

การอ่าน CSV ด้วย csv.reader เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

บทนำ

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

การเปิดไฟล์ CSV

with open('data.csv', newline='') as f: เป็นวิธีที่แนะนำ — newline='' ช่วยให้โมดูล csv จัดการจุดสิ้นสุดบรรทัด
import csv, io
sample = 'name,age,city\nAlice,30,NYC\nBob,25,LA'
reader = csv.reader(io.StringIO(sample))
for row in reader:
    print(row)

พื้นฐาน csv.reader

csv.reader(f) คืนค่าตัววนซ้ำของแถว โดยแต่ละแถวเป็นรายการสตริง
import csv, io
data = 'a,b,c\n1,2,3\n4,5,6'
for row in csv.reader(io.StringIO(data)):
    print(row)

การข้ามส่วนหัว

next(reader) ข้ามแถวส่วนหัว หรือใช้ csv.DictReader เพื่อเข้าถึงคอลัมน์ตามชื่อ
import csv, io
data = 'name,age\nAlice,30\nBob,25'
reader = csv.reader(io.StringIO(data))
header = next(reader)  # skip
for row in reader:
    print(row)

ตัวคั่นแบบกำหนดเอง

csv.reader(f, delimiter=';') อ่านไฟล์ที่แยกด้วยอัฒภาค ใช้ได้กับตัวคั่นที่มีอักขระเดียวทุกชนิด
import csv, io
data = 'a;b;c\n1;2;3'
for row in csv.reader(io.StringIO(data), delimiter=';'):
    print(row)

การจัดการฟิลด์ในเครื่องหมายคำพูด

csv.reader จัดการฟิลด์ในเครื่องหมายคำพูดให้โดยอัตโนมัติ: 'Alice, Jr.' ยังคงเป็นฟิลด์เดียว
import csv, io
data = 'name,note\n"Smith, John","great guy"'
for row in csv.reader(io.StringIO(data)):
    print(row)

csv.DictReader

DictReader จับคู่แต่ละแถวกับ OrderedDict (หรือ dict ธรรมดาตั้งแต่ 3.8 ขึ้นไป) โดยใช้แถวส่วนหัวเป็นคีย์
import csv, io
data = 'name,age\nAlice,30\nBob,25'
for row in csv.DictReader(io.StringIO(data)):
    print(row['name'], row['age'])

การแปลงชนิดข้อมูล

ค่า CSV เป็นสตริงเสมอ โปรดแปลงอย่างชัดเจน: int(row['age']), float(row['price'])
import csv, io
data = 'item,price\napple,1.5\nbanana,0.75'
for row in csv.DictReader(io.StringIO(data)):
    print(row['item'], float(row['price'])*2)

การจัดการการเข้ารหัส

open(file, encoding='utf-8-sig') จัดการ UTF-8 BOM ซึ่งพบได้บ่อยในไฟล์ CSV ที่สร้างจาก Excel
# with open('data.csv', encoding='utf-8-sig', newline='') as f:
#     reader = csv.DictReader(f)
print('encoding demo')

ไฟล์ CSV ขนาดใหญ่

csv.reader ทำงานแบบขี้เกียจ — อ่านทีละแถว จึงไม่จำเป็นต้องโหลดไฟล์ทั้งหมดไว้ในหน่วยความจำ
import csv, io
data = '\n'.join(f'{i},{i*2}' for i in range(1000))
reader = csv.reader(io.StringIO(data))
print(sum(int(row[0]) for row in reader))

การตรวจจับรูปแบบไฟล์

csv.Sniffer().sniff(sample) ตรวจจับตัวคั่นและรูปแบบการใช้เครื่องหมายคำพูดโดยอัตโนมัติ
import csv, io
data = 'a|b|c\n1|2|3'
sniff = csv.Sniffer().sniff(data[:100])
print('delimiter:', sniff.delimiter)
for row in csv.reader(io.StringIO(data), dialect=sniff):
    print(row)

ตรวจสอบอย่างรวดเร็ว

เมื่อเปิดไฟล์ CSV ด้วย open() คุณควรกำหนดพารามิเตอร์ใดเสมอ

สรุปทบทวน

csv.reader: แถวเป็นรายการสตริง DictReader: แถวเป็นดิกชันนารี เปิดด้วย newline='' เสมอ จัดการการเข้ารหัสสำหรับไฟล์ Excel แปลงชนิดข้อมูลอย่างชัดเจน

เดินหน้าต่อ

ทำได้ดีครับ โปรดไปยังบทเรียนถัดไป

คำถามที่พบบ่อย

บทเรียน “การอ่าน CSV ด้วย csv.reader” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การอ่าน CSV ด้วย csv.reader” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การอ่าน CSV ด้วย csv.reader”

อ่านไฟล์ CSV ทีละแถวและเข้าถึงคอลัมน์ด้วยดัชนี คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การอ่าน CSV ด้วย csv.reader” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การเข้ารหัสและถอดรหัส JSON
  2. การจัดการโครงสร้าง JSON ซ้อนกัน
  3. การอ่าน CSV ด้วย csv.reader
  4. การเขียน CSV ด้วย csv.DictWriter
← กลับไปที่ Python Academy