Python การทำงานกับไฟล์

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

การเปิดและปิดไฟล์ (Open and Close Files)

การเปิดไฟล์ทำได้ด้วยคำสั่ง open() ซึ่งมีรูปแบบการทำงานดังนี้

Python
file = open("filename.txt", "mode")
# ทำการอ่านหรือเขียนข้อมูล
file.close()

“mode” ระบุโหมดการทำงาน เช่น:

  • "r": อ่านไฟล์
  • "w": เขียนทับไฟล์เดิม (หากไฟล์ไม่มีจะถูกสร้างใหม่)
  • "a": เขียนข้อมูลต่อจากข้อมูลเดิมในไฟล์
  • "b": ทำงานกับไฟล์ไบนารี (ใช้ร่วมกับโหมดอ่าน/เขียน)

ตัวอย่าง

Python
file = open("example.txt", "w")
file.write("Hello, World!")
file.close()

การใช้ with เพื่อจัดการไฟล์

การใช้คำสั่ง with จะช่วยให้ไม่ต้องปิดไฟล์ด้วยตัวเอง เพราะเมื่อทำงานเสร็จ ไฟล์จะถูกปิดโดยอัตโนมัติ

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

การอ่านไฟล์ (Reading Files)

สามารถอ่านไฟล์ได้หลายรูปแบบ เช่น อ่านทั้งหมดในครั้งเดียว หรืออ่านทีละบรรทัด

อ่านทั้งหมด

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

อ่านทีละบรรทัด

Python
with open("example.txt", "r") as file:
    for line in file:
        print(line.strip())  # ใช้ .strip() เพื่อลบช่องว่าง

การเขียนไฟล์ (Writing Files)

ในโหมด "w" จะเขียนทับข้อมูลเก่า และในโหมด "a" จะเพิ่มข้อมูลลงไปในไฟล์เดิม

เขียนทับข้อมูล

Python
with open("example.txt", "w") as file:
    file.write("This will overwrite the file.")

เพิ่มข้อมูลลงไปในไฟล์

Python
with open("example.txt", "a") as file:
    file.write("\nThis will be added to the file.")

การทำงานกับไฟล์ไบนารี (Binary Files)

สำหรับไฟล์ที่ไม่ใช่ข้อความ เช่น ไฟล์รูปภาพหรือไฟล์เสียง จะต้องทำงานในโหมดไบนารี ("rb" หรือ "wb")

อ่านไฟล์ไบนารี

Python
with open("image.jpg", "rb") as file:
    content = file.read()

เขียนไฟล์ไบนารี

Python
with open("new_image.jpg", "wb") as file:
    file.write(content)

การทำงานกับไฟล์ CSV

Python มีโมดูล csv ที่ช่วยในการจัดการไฟล์ CSV ได้อย่างง่ายดาย

อ่านไฟล์ CSV

Python
import csv

with open("data.csv", "r") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

เขียนไฟล์ CSV

Python
import csv

with open("data.csv", "w", newline='') as file:
    writer = csv.writer(file)
    writer.writerow(["name", "age", "city"])
    writer.writerow(["John", 28, "New York"])

การทำงานกับไฟล์ JSON

โมดูล json ช่วยในการจัดการกับไฟล์ JSON ซึ่งสามารถใช้ได้ทั้งการอ่านและเขียนข้อมูล

อ่านไฟล์ JSON

Python
import json

with open("data.json", "r") as file:
    data = json.load(file)
    print(data)

เขียนไฟล์ JSON

Python
import json

data = {"name": "John", "age": 28, "city": "New York"}

with open("data.json", "w") as file:
    json.dump(data, file)

สรุป

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