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

Python:อ่านไฟล์ข้อความลงในรายการ

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

หากต้องการอ่านไฟล์ ให้ใช้ readlines() กระบวนการ. เมื่อคุณอ่านไฟล์แล้ว ให้ใช้ split() เพื่อเปลี่ยนบรรทัดเหล่านั้นให้เป็นรายการ

ในคู่มือนี้ เราจะพูดถึงวิธีใช้ split() วิธีการอ่านไฟล์ข้อความลงในรายการ เราจะยกตัวอย่างเพื่อให้คุณสามารถเริ่มต้นอ่านไฟล์ข้อความลงในรายการได้อย่างรวดเร็ว

Python:อ่านไฟล์ข้อความลงในรายการ

เริ่มต้นด้วยไฟล์ข้อความชื่อ grilled_cheese.txt ไฟล์นี้มีส่วนผสมสำหรับแซนวิชชีสย่าง เนื้อหาไฟล์ของเรามีลักษณะดังนี้:

2 tbsp, ricotta
1 tbsp, grated parmesan
50g, mozzarella
25g, gorgonzola
2, thick slices white bread
1 tbsp, butter

คอลัมน์แรกในไฟล์ของเราประกอบด้วยปริมาณของส่วนผสมแต่ละอย่างที่จะใช้ คอลัมน์ที่สองมีชื่อของส่วนผสม

เราอ่านไฟล์นี้ในโค้ดของเราโดยใช้ open() และ readlines() วิธีการ:

with open("grilled_cheese.txt", "r") as grilled_cheese:
	lines = grilled_cheese.readlines()
	print(lines)

ในโค้ดของเรา เราเปิดไฟล์ชื่อ “grilled_cheese.txt” ในโหมดอ่าน โหมดอ่านแสดงด้วยอักขระ "r" ใน open() คำแถลง. ต่อไป เราพิมพ์บรรทัดเหล่านั้นไปที่คอนโซล

มาดูกันว่าโค้ด Python ของเราส่งคืนอะไร:

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

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

['2 tbsp, ricotta\n', '1 tbsp, grated parmesan\n', '50g, mozzarella\n', '25g, gorgonzola\n', '2, thick slices white bread\n', '1 tbsp, butter\n']

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

แบ่งค่าเป็นรายการ

ในการแก้ปัญหานี้ เราใช้เมธอด split() วิธีนี้ช่วยให้เราแบ่งสตริงโดยใช้อักขระตัวคั่นที่เราระบุได้

ในการเริ่มต้น เราประกาศสองรายการ:ปริมาณและส่วนผสม รหัสนี้จะยังคงเยื้องเนื่องจากเป็นส่วนหนึ่งของ open() . ของเรา บล็อกของรหัส

	quantities = []
	ingredients = []

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

for l in lines:
		 as_list = l.split(", ")
		 quantities.append(as_list[0])
		 ingredients.append(as_list[1])

for loop ช่วยให้เราอ่านไฟล์ของเราทีละบรรทัด ค่าแรกใน “as_list” คือปริมาณของส่วนผสม ค่าที่สองคือชื่อของส่วนผสม จากนั้นเราจะพิมพ์ทั้งสองรายการเหล่านี้ไปที่คอนโซล:

	print(quantities)
	print(ingredients)

เรียกใช้รหัสของเรา:

['2 tbsp, ricotta\n', '1 tbsp, grated parmesan\n', '50g, mozzarella\n', '25g, gorgonzola\n', '2, thick slices white bread\n', '1 tbsp, butter\n']
['2 tbsp', '1 tbsp', '50g', '25g', '2', '1 tbsp']
['ricotta\n', 'grated parmesan\n', 'mozzarella\n', 'gorgonzola\n', 'thick slices white bread\n', 'butter\n']

รหัสของเราพิมพ์สามรายการไปยังคอนโซล รายการแรกคือรายการบรรทัดข้อความทั้งหมดในไฟล์ของเรา รายการที่สองมีปริมาณทั้งหมดจากไฟล์ของเรา รายการที่สามมีส่วนผสมทั้งหมด

ลบบรรทัดใหม่

ยังมีการปรับปรุงอีกประการหนึ่งที่เราต้องทำ ทุกส่วนผสมลงท้ายด้วยอักขระ “\n” อักขระนี้แสดงถึงบรรทัดใหม่ เราสามารถลบอักขระนี้โดยใช้วิธีการแทนที่ ():

for l in lines:
	   	  as_list = l.split(", ")
		  quantities.append(as_list[0])
		  ingredients.append(as_list[1].replace("\n", ""))

ใน for loop ของเรา เราจะแทนที่ค่า “\n” ด้วยสตริงว่าง เราทำสิ่งนี้กับค่า as_list[1] ซึ่งสัมพันธ์กับชื่อของแต่ละส่วนผสม

หลังจากที่เราได้ทำการเปลี่ยนแปลงนี้แล้ว โปรแกรมของเราก็พร้อมแล้ว:

with open("grilled_cheese.txt", "r") as grilled_cheese:
	   lines = grilled_cheese.readlines()

	   quantities = []
	   ingredients = []

	   for l in lines:
	  			 as_list = l.split(", ")
			     quantities.append(as_list[0])
			     ingredients.append(as_list[1].replace("\n", ""))

	   print(quantities)
	   print(ingredients)

เรียกใช้โค้ดของเราแล้วดูว่าเกิดอะไรขึ้น:

['2 tbsp', '1 tbsp', '50g', '25g', '2', '1 tbsp']
['ricotta', 'grated parmesan', 'mozzarella', 'gorgonzola', 'thick slices white bread', 'butter']

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

บทสรุป

คุณสามารถอ่านไฟล์ข้อความโดยใช้ open() และ readlines() วิธีการ หากต้องการอ่านไฟล์ข้อความในรายการ ให้ใช้ split() กระบวนการ. เมธอดนี้แยกสตริงออกเป็นรายการที่อักขระบางตัว

ในตัวอย่างข้างต้น เราแบ่งสตริงออกเป็นรายการตามตำแหน่งของเครื่องหมายจุลภาคและช่องว่าง (“, ”) ตอนนี้คุณพร้อมที่จะอ่านไฟล์ข้อความลงในรายการในภาษา Python อย่างผู้เชี่ยวชาญแล้ว