ฟังก์ชัน open() ใช้เปิดไฟล์ คุณต้องใช้โหมด "r" เพื่ออ่านไฟล์ ฟังก์ชัน read(), readline(), readlines() จะคืนค่าเนื้อหาของไฟล์ที่เปิดแล้ว
Python เป็นภาษาที่เหมาะสำหรับประมวลผลข้อมูล ภาษานี้มี built-in functions หลายตัวที่ทำให้อ่าน เขียน และจัดการข้อมูลหรือไฟล์ง่ายขึ้น
สมมติคุณมี list ชื่อพนักงาน และต้องการเช็คว่าชื่อผู้ใช้อยู่ใน list นั้นหรือไม่ คุณสามารถบันทึก list ชื่อพนักงานเป็นไฟล์ แล้วใช้ Python อ่านไฟล์นั้นและตรวจสอบว่าชื่อพนักงานอยู่ในไฟล์หรือไม่
ในบทช่วยสอนนี้ เราจะสำรวจพื้นฐานการอ่านไฟล์ใน Python เริ่มจากวิธีเปิดและเข้าถึงไฟล์ แล้วตามด้วยการอ่านไฟล์ใน Python
เปิดไฟล์เพื่ออ่านใน Python
ขั้นตอนแรกในการอ่านไฟล์คือเปิดไฟล์ที่ต้องการอ่าน คุณต้องบอก Python ว่าไฟล์นั้นชื่ออะไร
เพื่ออ่านไฟล์ คุณต้องบอก Python ก่อนว่าไฟล์อยู่ที่ไหน ทำได้โดยระบุ path ของไฟล์และ宣告ในตัวแปร
Syntax สำหรับเปิดไฟล์ใน Python:
filename = "/users/career_karma/names.txt" names_file = open(filename, 'r')
โค้ดเปิดไฟล์ที่ path ที่กำหนดในตัวแปร "filename"
Flag r ท้ายฟังก์ชัน open() บอก Python ว่าเราต้องการเพียงแค่อ่านไฟล์ เราสามารถเปลี่ยน flag นี้ได้หากต้องการแก้ไขไฟล์
Python Read File (อ่านไฟล์)
ตอนนี้ไฟล์เปิดแล้ว เราสามารถอ่านผ่าน Python ได้ มี 3 ฟังก์ชันสำหรับอ่านข้อมูลจากไฟล์:
- read(): คืนค่าเนื้อหาทั้งหมดของไฟล์
- readline(): คืนค่าบรรทัดถัดไปของไฟล์
- readlines(): คืนค่า list ของบรรทัดทั้งหมดในไฟล์
มาดูรายละเอียดแต่ละฟังก์ชัน read() method สามารถคืนค่าเนื้อหาทั้งไฟล์เป็น string ได้
Python Read Text File (อ่านไฟล์ข้อความ)
ตัวอย่าง read() ทำงานบน text file ที่มี list ชื่อ:
path = "/users/career_karma/names.txt" names_file = open(path, 'r') print(names_file.read())
โปรแกรมคืนค่า:
"Sally\nAlex\nPamela\nJonas\nLuke\nWill\n"
Method read() คืนค่าทุกอย่างในไฟล์ names รวมถึง newline characters ท้าย string
ฟังก์ชัน readline() คืนค่าบรรทัดถัดไปของไฟล์ readline() คืนค่าข้อความและ newline character ท้ายไฟล์ โค้ดต่อไปอ่านบรรทัดแรกในไฟล์:
print(names_file.readline())
โค้ดคืนค่า:
"Sally\n"
หากต้องการอ่านบรรทัดแรกและสองของไฟล์เดิม ต้องใช้ readline() อีกครั้ง:
names_file = open(path, 'r') print(names_file.readline()) print(names_file.readline())
โค้ดคืนค่า:
"Sally\n" "Alex\n"
Python Read File Line-by-Line (อ่านไฟล์ทีละบรรทัด)
ฟังก์ชัน readline() มีประโยชน์หากต้องการอ่านไฟล์ทีละบรรทัด ฟังก์ชันนี้มักใช้ใน for loop เพื่ออ่านหลายบรรทัดในไฟล์ เช่น:
for i in range(0, 2):
print(names_file.readline())
โค้ดคืนค่า:
"Sally\n" "Alex\n"
สุดท้าย method readlines() คืนค่า list ของบรรทัดในไฟล์ ฟังก์ชันนี้คืนค่า array แต่ละ item แทนบรรทัดเดียวในไฟล์:
print(names_file.readlines())
โปรแกรมคืนค่า:
['Sally\n', 'Alex\n', 'Pamela\n', 'Jonas\n', 'Luke\n', 'Will']
เมื่อคุณอ่านไฟล์เสร็จแล้ว คุณไม่สามารถอ่านซ้ำได้ ดังนั้น หลังอ่านด้วย readlines() หากพยายามอ่านซ้ำด้วย read operation ใดๆ จะได้ empty string หากต้องการอ่านไฟล์หลายครั้ง ต้องเปิดไฟล์ใหม่และอ่านใหม่
สรุป
คุณสามารถใช้ฟังก์ชัน read(), readline(), และ readlines() เพื่ออ่านส่วนต่างๆ ของไฟล์ แล้วจัดการข้อมูลตามต้องการ วันนี้เราครอบคลุมการเปิดไฟล์ อ่านด้วย methods เฉพาะ และปิดไฟล์ใน Python
ตอนนี้คุณพร้อมเปิดและอ่าน Python files อย่างมืออาชีพแล้ว! อ่านเพิ่มเติมเกี่ยวกับ Python ในคู่มือ How to Code in Python