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

โมดูล Python CSV:คำแนะนำทีละขั้นตอน

โมดูล Python CSV ใช้เพื่อจัดการไฟล์ CSV ไฟล์ CSV สามารถเก็บข้อมูลได้มากมาย และโมดูล CSV ช่วยให้ Python อ่านและเขียนไฟล์ CSV ด้วย reader() และ writer() ฟังก์ชัน


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

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

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

ทบทวน CSV

เมื่อคุณทำงานกับข้อมูล คุณอาจมีรายการข้อมูลนั้นคั่นด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น คุณอาจมีรายการคำสั่งซื้อไอศกรีมที่มีค่าต่างๆ คั่นด้วยเครื่องหมายจุลภาค โครงสร้างข้อมูลนี้เรียกว่าข้อมูล CSV หรือค่าที่คั่นด้วยเครื่องหมายจุลภาค

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

นี่คือตัวอย่างไฟล์ CSV:

suppliers.csv

Hendersons Creamery, 123 Main Street, Cream
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles

ไฟล์นี้จัดเก็บสามรายการ:ชื่อของซัพพลายเออร์ ที่อยู่ และผลิตภัณฑ์ที่พวกเขาจัดหาธุรกิจของเรา ไฟล์ของเรายังจัดเก็บข้อมูลสองบรรทัด บรรทัดแรกสำหรับ Hendersons Creamery และอีกบรรทัดสำหรับ Peterson Chocolate

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

เนื่องจากข้อมูลของเรามีโครงสร้างเป็นไฟล์ CSV เราจึงสามารถแยกวิเคราะห์ข้อมูลผ่านโปรแกรม Python และรับข้อมูลจากแต่ละคอลัมน์หรือแถวได้

โมดูล Python CSV

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

CSV เป็นโมดูล Python ในตัว แต่ก่อนที่เราจะใช้งาน เราต้องนำเข้า CSV ลงในโปรแกรมของเรา เราสามารถทำได้โดยใช้รหัสนี้:

import csv

การอ่านไฟล์ CSV

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

สมมติว่าเรามีรายชื่อผู้จำหน่ายไอศกรีมในไฟล์ชื่อ suppliers.csv ที่เราต้องการอ่านในโปรแกรมของเรา เนื้อหาของไฟล์มีดังนี้:

Hendersons Creamery, 123 Main Street, Cream
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones

เราสามารถดึงข้อมูลนี้โดยใช้รหัสต่อไปนี้:

import csv
with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		print(c)

มีอะไรเกิดขึ้นมากมายที่นี่ เรามาทำลายมันกันเถอะ ในบรรทัดแรก เรานำเข้า csv โมดูล ซึ่งช่วยให้เราใช้วิธี CSV ในโค้ดของเราได้ ในบรรทัดถัดไป เราใช้ with คำสั่งเพื่อเปิดไฟล์ของเราและระบุว่าไฟล์ของเราควรได้รับการกำหนดค่า f .

ต่อไป เราใช้ contents = csv.reader(f) เพื่ออ่านเนื้อหาในไฟล์ของเราโดยใช้ csv.reader() การทำงาน. สุดท้าย โปรแกรมของเราสร้าง for loop ที่วนซ้ำในแต่ละบรรทัดในไฟล์ CSV และพิมพ์ออกมาที่ Python shell

โปรแกรมของเราส่งคืนข้อมูลต่อไปนี้:

['Hendersons Creamery', ' 123 Main Street', ' Cream']
['Peterson Chocolate', ' 129 Second Street', ' Chocolate Sprinkles']
['HW Smith and Co', ' 17 Boston Avenue', ' Ice Cream Cones']

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

สมมุติว่าเรากำลังส่งหนังสือแจ้งยกเลิกออเดอร์สำหรับสัปดาห์หน้าเพราะร้านจะปิด เราสามารถใช้รหัสนี้เพื่อรับที่อยู่ของซัพพลายเออร์แต่ละรายเพื่อส่งหนังสือแจ้ง:

…

	for c in contents:
		print(c[1])

โปรแกรมของเรากลับมา:

123 Main Street
129 Second Street
17 Boston Avenue

ในโค้ดของเรา เราสร้าง for วนซ้ำที่ผ่านแต่ละบรรทัดใน contents . ของเรา ตัวแปร. จากนั้นเราพิมพ์ค่าของแต่ละรายการด้วยหมายเลขดัชนี 1 ซึ่งในกรณีนี้จะมีที่อยู่ของซัพพลายเออร์แต่ละราย

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

import csv

suppliers = []

with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		suppliers.append(c)

print(suppliers)

รหัสของเราส่งคืนดังต่อไปนี้:

[['Hendersons Creamery', ' 123 Main Street', ' Cream'], ['Peterson Chocolate', ' 129 Second Street', ' Chocolate Sprinkles'], ['HW Smith and Co', ' 17 Boston Avenue', ' Ice Cream Cones']]

มาอธิบายว่าเกิดอะไรขึ้นในโค้ดของเรา โปรแกรมของเราเปิดไฟล์ suppliers.csv อ่านไฟล์ จากนั้นผนวกแต่ละระเบียนในอาร์เรย์ suppliers ที่เราประกาศเมื่อเริ่มต้นโปรแกรมของเรา จากนั้นโปรแกรมของเราพิมพ์ตัวแปร suppliers .

การเขียนลงไฟล์ CSV

โมดูล CSV มีวิธีการที่สามารถใช้เขียนข้อมูลลงในไฟล์ CSV:writer() . writer() ฟังก์ชันช่วยให้เราเขียนข้อมูลลงในไฟล์ที่เราระบุเพื่อบันทึกข้อมูลไว้ใช้ในภายหลังได้

writer() ฟังก์ชั่นสร้างวัตถุที่เราสามารถใช้เขียนไปยังไฟล์ได้ จากนั้น ในการเขียนข้อมูลลงในไฟล์ เราใช้ writerow() วิธีการ

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

import csv

suppliers = []

with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		c.append("Yes")
		suppliers.append(c)

with open("new_suppliers.csv", "w") as f:
write_to_file = csv.writer(f)
for s in suppliers:
	write_to_file.writerow(s)

จุดเริ่มต้นของโค้ดของเรานั้นคล้ายกับตัวอย่างก่อนหน้านี้มาก มันอ่านไฟล์ suppliers.csv และย้ายเนื้อหาไปยัง suppliers อาร์เรย์ ข้อแตกต่างเพียงอย่างเดียวคือฟังก์ชันอ่านเพิ่มค่าใหม่ที่เรียกว่า Yes ไปยังแต่ละรายการในอาร์เรย์ซัพพลายเออร์ของเรา ค่านี้แสดงว่าซัพพลายเออร์เป็นซัพพลายเออร์หลักของผลิตภัณฑ์บางอย่างหรือไม่

ต่อไป เราเปิดไฟล์ใหม่ชื่อ new_suppliers.csv และเขียนเนื้อหาของ suppliers . ของเรา ไปยังไฟล์นั้น เราใช้ writer() เพื่อเตรียมไฟล์สำหรับเขียน

จากนั้น เราก็สร้าง for วนซ้ำที่ผ่าน suppliers . ของเรา และใช้ writerow() วิธีการเพิ่มซัพพลายเออร์แต่ละรายใน new_suppliers.csv ไฟล์.

รหัสของเราส่งคืนดังต่อไปนี้:

new_suppliers.csv

Hendersons Creamery, 123 Main Street, Cream,Yes
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles,Yes
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones,Yes

อย่างไรก็ตาม ไม่จำเป็นต้องวนซ้ำแต่ละรายการ หากเราต้องการเขียน suppliers ทั้งหมดของเรา ตัวแปรไปยังไฟล์. แต่เราสามารถใช้ writerows() . แทน วิธีการเขียนทุกรายการใน suppliers ตัวแปรเป็น new_suppliers.csv . ของเรา ไฟล์.

นี่คือรหัสที่เราจะใช้:

…
	write_to_file = csv.writer(f)
	write_to_file.writerows(suppliers)

…

รหัสของเราส่งคืน:

new_suppliers.csv

Hendersons Creamery, 123 Main Street, Cream,Yes
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles,Yes
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones,Yes

การอ้างอิงไฟล์ CSV

ในตัวอย่างข้างต้น รหัสของเราเขียน suppliers อาร์เรย์ไปยังไฟล์ใหม่ตามที่ปรากฏ

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

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

  • csv.QUOTE_ALL :ล้อมรอบทุกสตริงในเครื่องหมายคำพูด
  • csv.QUOTE_NONNUMERIC :อ้างอิงช่องสตริงทั้งหมด
  • csv.QUOTE_MINIMAL :ช่องอ้างอิงด้วยอักขระพิเศษ
  • csv.QUOTE_NONE :ห้ามอ้างอิงค่าใดๆ

สมมติว่าเราต้องการเสนอราคาทุกค่าในsuppliers array เมื่อเขียนลงในไฟล์ของเรา เราสามารถใช้รหัสต่อไปนี้:

…

write_to_file = csv.writer(f, quoting=csv.QUOTE_ALL)

…

เมื่อเรารันโปรแกรม new_suppliers.csv . ของเรา ไฟล์มีดังต่อไปนี้:

"Hendersons Creamery"," 123 Main Street"," Cream","Yes"
"Peterson Chocolate"," 129 Second Street"," Chocolate Sprinkles","Yes"
"HW Smith and Co"," 17 Boston Avenue"," Ice Cream Cones","Yes"

บทสรุป

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

ในบทช่วยสอนนี้ เราได้สำรวจพื้นฐานของโมดูล Python CSV และวิธีการทำงาน เรายังคุยกันถึงวิธีการอ่านและเขียนไฟล์โดยใช้ reader() และ writer() วัตถุ

ตอนนี้คุณพร้อมที่จะอ่านข้อมูลจากและเขียนข้อมูลไปยังไฟล์ CSV โดยใช้ Python อย่างมืออาชีพแล้ว!

บริษัทต่างๆ ทั่วโลกกำลังจ้างผู้ที่รู้วิธีเขียนโค้ดใน Python ดาวน์โหลด แอป Career Karma ฟรี วันนี้เพื่อหาข้อมูลเพิ่มเติมว่าการเรียนรู้ Python สามารถช่วยให้คุณก้าวสู่สายงานเทคโนโลยีได้อย่างไร!