ในภาษา Python การลบไฟล์สามารถทำได้หลายวิธี โดยใช้ฟังก์ชันและโมดูลมาตรฐานต่างๆ ที่รองรับการจัดการกับไฟล์และโฟลเดอร์ได้หลากหลายรูปแบบ
การลบไฟล์ด้วย os.remove()
ฟังก์ชัน os.remove() เป็นวิธีการลบไฟล์พื้นฐานที่อยู่ในโมดูล os โดยจะลบไฟล์ที่ระบุให้หายไป
ตัวอย่าง
import os
# ระบุชื่อไฟล์ที่จะลบ
file_path = 'example.txt'
# ตรวจสอบว่าไฟล์มีอยู่ก่อนลบ
if os.path.exists(file_path):
os.remove(file_path)
print(f"ลบไฟล์ {file_path} เรียบร้อยแล้ว")
else:
print("ไม่พบไฟล์ดังกล่าว")การลบไฟล์ด้วย os.unlink()
ฟังก์ชัน os.unlink() มีการทำงานเหมือนกับ os.remove() คือใช้ลบไฟล์ในระบบไฟล์ของเรา
ตัวอย่าง
import os
file_path = 'example.txt'
try:
os.unlink(file_path)
print(f"ลบไฟล์ {file_path} เรียบร้อยแล้ว")
except FileNotFoundError:
print("ไม่พบไฟล์ดังกล่าว")การลบหลายไฟล์ด้วย glob และ os.remove()
บางครั้งเราต้องการลบหลายไฟล์ที่มีลักษณะคล้ายกัน (เช่น ไฟล์ที่มีนามสกุล .txt ทั้งหมดในโฟลเดอร์เดียวกัน) เราสามารถใช้โมดูล glob เพื่อค้นหาไฟล์ที่มีรูปแบบตรงกับที่ต้องการ
ตัวอย่าง
import os
import glob
# ค้นหาไฟล์ทั้งหมดที่มีนามสกุล .txt
files = glob.glob('*.txt')
# ลบไฟล์แต่ละไฟล์
for file in files:
os.remove(file)
print(f"ลบไฟล์ {file} เรียบร้อยแล้ว")การลบไฟล์ในไดเรกทอรีที่ไม่ว่างด้วย shutil.rmtree()
ฟังก์ชัน shutil.rmtree() ในโมดูล shutil ใช้สำหรับลบโฟลเดอร์และไฟล์ทั้งหมดที่อยู่ภายในโฟลเดอร์นั้น สามารถใช้ได้กับโฟลเดอร์ที่มีไฟล์หรือโฟลเดอร์ย่อยอยู่ภายใน
ตัวอย่าง
import shutil
# ระบุชื่อไดเรกทอรีที่จะลบ
dir_path = 'example_directory'
# ลบไดเรกทอรีและไฟล์ทั้งหมดที่อยู่ในนั้น
shutil.rmtree(dir_path)
print(f"ลบไดเรกทอรี {dir_path} เรียบร้อยแล้ว")การลบไฟล์ชั่วคราวด้วย tempfile
ในบางสถานการณ์เราอาจสร้างไฟล์ชั่วคราวขึ้นมาและต้องการลบไฟล์นั้นเมื่อเสร็จสิ้นการใช้งาน เราสามารถใช้โมดูล tempfile เพื่อสร้างไฟล์ชั่วคราวได้
ตัวอย่าง
import tempfile
import os
# สร้างไฟล์ชั่วคราว
with tempfile.NamedTemporaryFile(delete=False) as temp_file:
print(f"สร้างไฟล์ชั่วคราว: {temp_file.name}")
# ลบไฟล์ชั่วคราว
os.remove(temp_file.name)
print(f"ลบไฟล์ชั่วคราว {temp_file.name} เรียบร้อยแล้ว")สรุป
os.remove()และos.unlink()ใช้ลบไฟล์เดี่ยวๆglobใช้ค้นหาไฟล์หลายไฟล์ที่มีรูปแบบตรงกันแล้วลบด้วยos.remove()shutil.rmtree()ใช้ลบโฟลเดอร์พร้อมเนื้อหาภายในtempfileใช้สำหรับสร้างไฟล์ชั่วคราวและลบเมื่อไม่ต้องการ
การประยุกต์ใช้งานสามารถเลือกตามความเหมาะสมขึ้นอยู่กับสถานการณ์ที่ต้องการ
