Python การเปิดไฟล์

ฟังก์ชัน open() ใน Python ใช้เพื่อเปิดไฟล์ โดยจะสร้าง object ของไฟล์ที่สามารถอ่านหรือเขียนได้ ขึ้นอยู่กับโหมดที่เรากำหนด ฟังก์ชันนี้สามารถใช้งานได้หลายรูปแบบตามที่ต้องการ โดยรูปแบบการเรียกใช้หลัก ๆ คือ

Python
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

อธิบายพารามิเตอร์หลัก

  1. file: ชื่อไฟล์หรือ path ของไฟล์ที่ต้องการเปิด
  2. mode: โหมดการเปิดไฟล์ (ดูรายละเอียดโหมดด้านล่าง)
  3. buffering: ระบุว่าเราต้องการใช้ buffering หรือไม่ (ค่าเริ่มต้นคือ -1 สำหรับ auto)
  4. encoding: กำหนด encoding เช่น UTF-8 (ใช้สำหรับโหมดข้อความ)
  5. errors: กำหนดวิธีจัดการกับ error ในการอ่านไฟล์
  6. newline: ระบุการจัดการ newline ในการอ่านและเขียนไฟล์
  7. closefd: ถ้าเป็น False จะไม่ปิดไฟล์ descriptor เมื่อเรียกใช้ close
  8. opener: ใช้กำหนดฟังก์ชันสำหรับเปิดไฟล์

โหมดการใช้งาน (mode)

  • "r": เปิดไฟล์เพื่ออ่าน (ค่าเริ่มต้น)
  • "w": เปิดไฟล์เพื่อเขียน (เขียนทับข้อมูลเดิม)
  • "x": เปิดไฟล์เพื่อสร้างไฟล์ใหม่ (ถ้าไฟล์มีอยู่แล้วจะเกิด error)
  • "a": เปิดไฟล์เพื่อเขียนต่อท้ายข้อมูลเดิม
  • "b": เปิดไฟล์ในโหมดไบนารี (เช่น ไฟล์รูปภาพหรือวิดีโอ)
  • "t": เปิดไฟล์ในโหมดข้อความ (ค่าเริ่มต้น)
  • "+": เปิดไฟล์เพื่ออ่านและเขียน

ตัวอย่างการใช้งาน

อ่านไฟล์ (โหมด r)

Python
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

โหมดนี้ใช้สำหรับอ่านไฟล์ ถ้าไฟล์ไม่พบจะเกิดข้อผิดพลาด

เขียนไฟล์ (โหมด w)

Python
with open('example.txt', 'w') as file:
    file.write('Hello World!')

ถ้าไฟล์มีอยู่แล้วข้อมูลจะถูกเขียนทับ

สร้างไฟล์ใหม่ (โหมด x)

Python
try:
    with open('example.txt', 'x') as file:
        file.write('New file created!')
except FileExistsError:
    print('File already exists')

โหมดนี้จะสร้างไฟล์ใหม่ ถ้ามีไฟล์อยู่แล้วจะเกิดข้อผิดพลาด

เขียนต่อท้ายไฟล์ (โหมด a)

Python
with open('example.txt', 'a') as file:
    file.write('\nAppend this line.')

ข้อมูลจะถูกเขียนต่อท้ายไฟล์ที่มีอยู่

เปิดไฟล์แบบไบนารี (โหมด rb หรือ wb)

Python
with open('image.png', 'rb') as file:
    content = file.read()
    print(content)

ใช้สำหรับอ่านหรือเขียนไฟล์ประเภทไบนารี เช่น ไฟล์รูปภาพ

อ่านและเขียนไฟล์พร้อมกัน (โหมด r+)

Python
with open('example.txt', 'r+') as file:
    content = file.read()
    print(content)
    file.write('\nNew line added.')

ใช้โหมดนี้ในการเปิดไฟล์เพื่ออ่านและเขียนพร้อมกัน

การใช้ with กับ open()

การใช้ with ร่วมกับ open() จะช่วยจัดการการปิดไฟล์อัตโนมัติเมื่อทำงานเสร็จ ลดความเสี่ยงจากการลืมปิดไฟล์

ตัวอย่าง

Python
with open('example.txt', 'w') as file:
    file.write('Hello, World!')

เมื่อออกจากบล็อก with ฟังก์ชัน close() จะถูกเรียกใช้อัตโนมัติ

การปิดไฟล์ด้วย close()

หากไม่ได้ใช้ with ควรปิดไฟล์หลังจากใช้งานเสร็จ โดยเรียกใช้ close()

Python
file = open('example.txt', 'r')
content = file.read()
file.close()

สรุป

ฟังก์ชัน open() ใน Python สามารถประยุกต์ใช้ในหลายรูปแบบตามโหมดที่เลือก ไม่ว่าจะเป็นการอ่าน การเขียน การสร้างไฟล์ หรือการเปิดไฟล์ในโหมดไบนารี โดยการใช้งานร่วมกับ with จะทำให้การจัดการไฟล์เป็นระเบียบและปลอดภัยมากขึ้น

แชร์เรื่องนี้