การทำงานกับไฟล์ใน Python นั้นมีหลากหลายรูปแบบ ขึ้นอยู่กับประเภทของไฟล์ที่ต้องการใช้งาน เช่น ไฟล์ข้อความ (text files), ไฟล์ไบนารี (binary files), ไฟล์ JSON, CSV เป็นต้น โดยทั่วไปเราจะทำงานกับไฟล์ด้วยคำสั่ง open() ซึ่งสามารถเปิดไฟล์เพื่ออ่านหรือเขียนข้อมูลได้
การเปิดและปิดไฟล์ (Open and Close Files)
การเปิดไฟล์ทำได้ด้วยคำสั่ง open() ซึ่งมีรูปแบบการทำงานดังนี้
file = open("filename.txt", "mode")
# ทำการอ่านหรือเขียนข้อมูล
file.close()“mode” ระบุโหมดการทำงาน เช่น:
"r": อ่านไฟล์"w": เขียนทับไฟล์เดิม (หากไฟล์ไม่มีจะถูกสร้างใหม่)"a": เขียนข้อมูลต่อจากข้อมูลเดิมในไฟล์"b": ทำงานกับไฟล์ไบนารี (ใช้ร่วมกับโหมดอ่าน/เขียน)
ตัวอย่าง
file = open("example.txt", "w")
file.write("Hello, World!")
file.close()การใช้ with เพื่อจัดการไฟล์
การใช้คำสั่ง with จะช่วยให้ไม่ต้องปิดไฟล์ด้วยตัวเอง เพราะเมื่อทำงานเสร็จ ไฟล์จะถูกปิดโดยอัตโนมัติ
with open("example.txt", "w") as file:
file.write("Hello, World!")การอ่านไฟล์ (Reading Files)
สามารถอ่านไฟล์ได้หลายรูปแบบ เช่น อ่านทั้งหมดในครั้งเดียว หรืออ่านทีละบรรทัด
อ่านทั้งหมด
with open("example.txt", "r") as file:
content = file.read()
print(content)อ่านทีละบรรทัด
with open("example.txt", "r") as file:
for line in file:
print(line.strip()) # ใช้ .strip() เพื่อลบช่องว่างการเขียนไฟล์ (Writing Files)
ในโหมด "w" จะเขียนทับข้อมูลเก่า และในโหมด "a" จะเพิ่มข้อมูลลงไปในไฟล์เดิม
เขียนทับข้อมูล
with open("example.txt", "w") as file:
file.write("This will overwrite the file.")เพิ่มข้อมูลลงไปในไฟล์
with open("example.txt", "a") as file:
file.write("\nThis will be added to the file.")การทำงานกับไฟล์ไบนารี (Binary Files)
สำหรับไฟล์ที่ไม่ใช่ข้อความ เช่น ไฟล์รูปภาพหรือไฟล์เสียง จะต้องทำงานในโหมดไบนารี ("rb" หรือ "wb")
อ่านไฟล์ไบนารี
with open("image.jpg", "rb") as file:
content = file.read()เขียนไฟล์ไบนารี
with open("new_image.jpg", "wb") as file:
file.write(content)การทำงานกับไฟล์ CSV
Python มีโมดูล csv ที่ช่วยในการจัดการไฟล์ CSV ได้อย่างง่ายดาย
อ่านไฟล์ CSV
import csv
with open("data.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)เขียนไฟล์ CSV
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
import json
with open("data.json", "r") as file:
data = json.load(file)
print(data)เขียนไฟล์ JSON
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ช่วยให้การจัดการไฟล์เป็นไปอย่างปลอดภัย ไม่ต้องปิดไฟล์เอง - โหมดในการเปิดไฟล์มีหลายแบบ ขึ้นอยู่กับว่าต้องการอ่านหรือเขียน
