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

การอ่านไฟล์ทั้งหมดเข้า Buffer ใน Python (f.read())

เมธอด 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