Python การลบไฟล์

ในภาษา Python การลบไฟล์สามารถทำได้หลายวิธี โดยใช้ฟังก์ชันและโมดูลมาตรฐานต่างๆ ที่รองรับการจัดการกับไฟล์และโฟลเดอร์ได้หลากหลายรูปแบบ

การลบไฟล์ด้วย os.remove()

ฟังก์ชัน os.remove() เป็นวิธีการลบไฟล์พื้นฐานที่อยู่ในโมดูล os โดยจะลบไฟล์ที่ระบุให้หายไป

ตัวอย่าง

Python
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() คือใช้ลบไฟล์ในระบบไฟล์ของเรา

ตัวอย่าง

Python
import os

file_path = 'example.txt'

try:
    os.unlink(file_path)
    print(f"ลบไฟล์ {file_path} เรียบร้อยแล้ว")
except FileNotFoundError:
    print("ไม่พบไฟล์ดังกล่าว")

การลบหลายไฟล์ด้วย glob และ os.remove()

บางครั้งเราต้องการลบหลายไฟล์ที่มีลักษณะคล้ายกัน (เช่น ไฟล์ที่มีนามสกุล .txt ทั้งหมดในโฟลเดอร์เดียวกัน) เราสามารถใช้โมดูล glob เพื่อค้นหาไฟล์ที่มีรูปแบบตรงกับที่ต้องการ

ตัวอย่าง

Python
import os
import glob

# ค้นหาไฟล์ทั้งหมดที่มีนามสกุล .txt
files = glob.glob('*.txt')

# ลบไฟล์แต่ละไฟล์
for file in files:
    os.remove(file)
    print(f"ลบไฟล์ {file} เรียบร้อยแล้ว")

การลบไฟล์ในไดเรกทอรีที่ไม่ว่างด้วย shutil.rmtree()

ฟังก์ชัน shutil.rmtree() ในโมดูล shutil ใช้สำหรับลบโฟลเดอร์และไฟล์ทั้งหมดที่อยู่ภายในโฟลเดอร์นั้น สามารถใช้ได้กับโฟลเดอร์ที่มีไฟล์หรือโฟลเดอร์ย่อยอยู่ภายใน

ตัวอย่าง

Python
import shutil

# ระบุชื่อไดเรกทอรีที่จะลบ
dir_path = 'example_directory'

# ลบไดเรกทอรีและไฟล์ทั้งหมดที่อยู่ในนั้น
shutil.rmtree(dir_path)
print(f"ลบไดเรกทอรี {dir_path} เรียบร้อยแล้ว")

การลบไฟล์ชั่วคราวด้วย tempfile

ในบางสถานการณ์เราอาจสร้างไฟล์ชั่วคราวขึ้นมาและต้องการลบไฟล์นั้นเมื่อเสร็จสิ้นการใช้งาน เราสามารถใช้โมดูล tempfile เพื่อสร้างไฟล์ชั่วคราวได้

ตัวอย่าง

Python
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 ใช้สำหรับสร้างไฟล์ชั่วคราวและลบเมื่อไม่ต้องการ

การประยุกต์ใช้งานสามารถเลือกตามความเหมาะสมขึ้นอยู่กับสถานการณ์ที่ต้องการ

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