เมธอด read() โดยไม่ระบุ size จะอ่าน ไฟล์ทั้งหมด เข้า String/Bytes และคืนค่า (จนถึง EOF)
ตัวอย่าง
>> with open('my_file.txt', 'r') as f:
... file_content = f.read() # อ่านทั้งไฟล์
... print(file_content)
โหมด Binary vs Text
>> # Text Mode (Default) - คืน str
>>> with open('file.txt', 'r') as f:
... content = f.read() # str
>>> # Binary Mode - คืน bytes
>>> with open('file.bin', 'rb') as f:
... content = f.read() # bytes
ข้อควรระวัง: Memory Usage
- เหมาะกับไฟล์ขนาดเล็ก-กลาง (พอดี RAM)
- ไฟล์ใหญ่ (GB+) → ใช้ Chunked Reading หรือ mmap แทน
- Python จัดการ String ขนาดใหญ่ได้ดี จนกว่าจะหมด RAM
ทางเลือกอื่น: readlines()
>> with open('file.txt', 'r') as f:
... lines = f.readlines() # List ของบรรทัด (เก็บ newline ไว้)
>>> lines
['Line 1\n', 'Line 2\n', 'Line 3']
Best Practice: with Statement
ใช้ with open(...) as f: เสมอ → ปิดไฟล์อัตโนมัติแม้มี Exception