การจัดเก็บข้อมูลในไฟล์ทำให้คุณสามารถบันทึกข้อมูลที่โปรแกรมทำงานอยู่ได้ ซึ่งหมายความว่าคุณไม่จำเป็นต้องสร้างข้อมูลใหม่อีกครั้งเมื่อทำงานกับโปรแกรม คุณเพิ่งอ่านข้อมูลนั้นจากไฟล์
หากต้องการอ่านไฟล์ ให้ใช้ 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 อย่างผู้เชี่ยวชาญแล้ว