ไฟล์ CSV ย่อมาจากไฟล์ Comma Separated Values เป็นไฟล์ข้อความธรรมดาที่ค่าข้อมูลถูกคั่นด้วยเครื่องหมายจุลภาคและด้วยเหตุนี้จึงแสดงข้อมูลแบบตารางในรูปแบบของข้อความธรรมดาโดยใช้เครื่องหมายจุลภาค ไฟล์ CSV มีนามสกุล .csv
ไฟล์ CSV มีลักษณะดังนี้ −
Sr.No,Name,City,Age 1,Rahul,Kolkata,21 2,Karan,Amritsar,23 3,Priya,Bangalore,20
ในการสร้างไฟล์ CSV คุณเพียงแค่เขียนไฟล์ในรูปแบบด้านบนในแผ่นจดบันทึกและบันทึกด้วยนามสกุล .csv
อ่านไฟล์ CSV ใน Python
ไฟล์ csv ที่จัดเก็บไว้ในที่จัดเก็บในเครื่องของคุณในระบบสามารถอ่านได้โดยใช้ Python
เราจำเป็นต้องนำเข้าโมดูล csv ใน Python จากนั้นเราต้องเปิดไฟล์ในโหมดอ่านเนื่องจากเราต้องอ่านข้อมูลจากไฟล์ ฟังก์ชัน csv.reader() ใช้สำหรับอ่านข้อมูลจากไฟล์ CSV csv.reader() ส่งคืนวัตถุตัวอ่านที่ทำซ้ำได้ เราจำเป็นต้องวนซ้ำวัตถุตัวอ่าน iterable ที่ส่งคืนเพื่อประมวลผลเนื้อหาของไฟล์ csv
การนำไปใช้
ให้เรามีไฟล์ csv ที่เก็บไว้ในระบบท้องถิ่นของเราในชื่อ “ttp.csv” เนื้อหาของไฟล์จะแสดงในตัวอย่างข้างต้น เราจำเป็นต้องอ่านเนื้อหาของไฟล์นี้และพิมพ์เนื้อหาของไฟล์ทีละบรรทัด
ตัวอย่าง
import csv with open('ttp.csv','r')as file: filecontent=csv.reader(file) for row in filecontent: print(row)
หมายเหตุ: ตรวจสอบให้แน่ใจว่าไฟล์ csv และโปรแกรม Python อยู่ที่ตำแหน่งเดียวกันในระบบ นั่นคือโฟลเดอร์เดียวกัน
ผลลัพธ์
['Sr.No', 'Name', 'City', 'Age'] ['1', 'Rahul', 'Kolkata', '21'] ['2', 'Karan', 'Amritsar', '23'] ['3', 'Priya', 'Bangalore', '20']
คำอธิบายทีละบรรทัด
-
นำเข้า csv - จำเป็นต้องนำเข้าโมดูล csv ใน Python เพื่อใช้ฟังก์ชันที่รวมอยู่ในโมดูลนี้เพื่ออ่านไฟล์
-
เปิดไฟล์โดยใช้ open() open() ใช้พารามิเตอร์สองตัวคือ ชื่อของไฟล์และโหมดที่คุณต้องการเปิด โหมดนี้คือ 'r' เนื่องจากเราต้องอ่านไฟล์
-
อ่านเนื้อหาของไฟล์โดยใช้ csv.reader() ส่งคืนอ็อบเจ็กต์ตัวอ่านแบบ iterable ซึ่งส่งคืนให้กับตัวแปร
-
วนซ้ำเนื้อหาไฟล์เพื่อพิมพ์แถวเนื้อหาไฟล์อย่างชาญฉลาด
ไฟล์ csv และโปรแกรม Python ที่อ่านต้องอยู่ที่ตำแหน่งเดียวกัน
ไฟล์ csv และโปรแกรม Python จะต้องอยู่ในตำแหน่งเดียวกันหรืออยู่ในโฟลเดอร์เดียวกันในระบบภายในของคุณ หากไฟล์อยู่ในตำแหน่งอื่น จะทำให้เกิดข้อยกเว้นและให้ผลลัพธ์ดังต่อไปนี้
Traceback (most recent call last): with open('ttp.csv','r')as file: FileNotFoundError: [Errno 2] No such file or directory: 'ttp.csv'
อ่านไฟล์ CSV ด้วยตัวคั่นที่กำหนดเอง
เครื่องหมายจุลภาคไม่ใช่ตัวคั่นเพียงตัวเดียวที่ใช้ในไฟล์ csv ตัวคั่นอื่นๆ ที่ใช้คือ :,; ,| ฯลฯ หากใช้ตัวคั่นอื่นแทนเครื่องหมายจุลภาค เราจำเป็นต้องแก้ไขโค้ดตามนั้น
การนำไปใช้
ให้ในไฟล์ csv ด้านบน ตัวคั่นที่ใช้คือ ':' แทนเครื่องหมายจุลภาค ดังนั้นโค้ดจะถูกแก้ไขดังนี้ −
ตัวอย่าง
import csv with open('ttp.csv','r')as file: filecontent=csv.reader(file,delimiter=':') for row in filecontent: print(row)
ผลลัพธ์
['Sr', 'No', 'Name', 'City', 'Age'] ['1', 'Rahul', 'Kolkata', '21'] ['2', 'Karan', 'Amritsar', '23'] ['3', 'Priya', 'Bangalore', '20']
การแก้ไขเพียงอย่างเดียวในโค้ดคือการระบุตัวคั่นที่ใช้ในไฟล์ csv ใน csv.reader() หากตัวคั่นที่ใช้คือ '|' จะต้องระบุเป็นตัวคั่นในโค้ด
หากไม่ระบุ โดยค่าเริ่มต้นโค้ดจะพิจารณาเฉพาะเครื่องหมายจุลภาคเป็นตัวคั่น และเนื่องจากไม่มีเครื่องหมายจุลภาคในไฟล์ ทั้งแถวจะถือเป็นรายการเดียว
หากไม่มีการระบุตัวคั่นในโค้ดด้านบนสำหรับไฟล์ด้านบนโดยใช้ตัวคั่น ':' ตัวคั่นจะสร้างผลลัพธ์ต่อไปนี้ซึ่งไม่ถูกต้อง
['Sr:No:Name:City:Age'] ['1:Rahul:Kolkata:21'] ['2:Karan:Amritsar:23'] ['3:Priya:Bangalore:20']
เช่นเดียวกับในผลลัพธ์ข้างต้น ทั้งแถวถือเป็นรายการเดียว