Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะอ่านไฟล์ CSV ใน Python ได้อย่างไร


ไฟล์ 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']

เช่นเดียวกับในผลลัพธ์ข้างต้น ทั้งแถวถือเป็นรายการเดียว