การอ่านเขียนไฟล์และการจัดการ Error
งานจริงมักต้องอ่านข้อมูลจากไฟล์ เขียนผลลัพธ์ออกไฟล์ และรับมือ error เช่น ไฟล์ไม่มีหรือข้อมูลไม่ถูกต้อง
อ่านไฟล์ Text
with open("notes.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)
with ช่วยปิดไฟล์ให้อัตโนมัติเมื่อทำงานเสร็จ
อ่านทีละบรรทัด
with open("notes.txt", "r", encoding="utf-8") as file:
for line in file:
print(line.strip())
เขียนไฟล์
with open("result.txt", "w", encoding="utf-8") as file:
file.write("สรุปผลการประมวลผล\n")
โหมดที่ใช้บ่อย:
rอ่านไฟล์wเขียนทับไฟล์เดิมaเขียนต่อท้ายไฟล์เดิม
try และ except
try:
number = int("abc")
except ValueError:
print("แปลงค่าเป็นตัวเลขไม่ได้")
จัดการไฟล์ไม่มี
try:
with open("missing.txt", "r", encoding="utf-8") as file:
content = file.read()
except FileNotFoundError:
print("ไม่พบไฟล์")
finally
finally จะทำงานเสมอ ไม่ว่าจะเกิด error หรือไม่
try:
print(10 / 2)
except ZeroDivisionError:
print("หารด้วยศูนย์ไม่ได้")
finally:
print("จบการทำงาน")
ตัวอย่างรวม
try:
with open("numbers.txt", "r", encoding="utf-8") as file:
numbers = [int(line.strip()) for line in file]
total = sum(numbers)
with open("summary.txt", "w", encoding="utf-8") as file:
file.write(f"total={total}\n")
except FileNotFoundError:
print("ไม่พบไฟล์ numbers.txt")
except ValueError:
print("ข้อมูลในไฟล์ต้องเป็นตัวเลข")
แบบฝึกหัด
- สร้างไฟล์
expenses.txtใส่ตัวเลขค่าใช้จ่ายทีละบรรทัด - เขียน Python อ่านไฟล์นี้
- คำนวณยอดรวม
- เขียนผลลัพธ์ลง
expense_summary.txt - เพิ่ม
try/exceptเพื่อจัดการกรณีไฟล์ไม่มี