目次  
1. บทนำ
การใช้ Python ช่วยให้สามารถจัดการไฟล์และไดเรกทอรีได้อย่างง่ายดาย โดยเฉพาะอย่างยิ่ง การสร้างไดเรกทอรีเป็นหนึ่งในงานที่ทำบ่อยเพื่อการจัดระเบียบไฟล์ การสำรองข้อมูล และการสร้างอัตโนมัติ คู่มือนี้จะอธิบายอย่างละเอียดเกี่ยวกับวิธีการสร้างไดเรกทอรีโดยใช้โมดูลos และโมดูล pathlib นอกจากนี้ยังกล่าวถึงการสร้างไดเรกทอรีแบบเรียกซ้ำและการจัดการข้อผิดพลาด โดยมุ่งให้เนื้อหาเข้าใจง่ายสำหรับผู้เริ่มต้นใช้ Python2. การสร้างไดเรกทอรีด้วย os.mkdir()
วิธีใช้งานพื้นฐาน
os.mkdir() เป็นวิธีพื้นฐานในการสร้างไดเรกทอรีหนึ่งรายการในพาธที่ระบุ อย่างไรก็ตาม ฟังก์ชันนี้มีข้อจำกัด หากไดเรกทอรีแม่ไม่มีอยู่จะทำให้เกิดข้อผิดพลาด ตัวอย่างเช่น โค้ดต่อไปนี้เป็นวิธีสร้างไดเรกทอรีแบบง่ายimport os
# ระบุพาธของไดเรกทอรีที่จะสร้าง
dir_path = './new_directory'
# สร้างไดเรกทอรี
os.mkdir(dir_path)FileExistsError นี่คือจุดที่ต้องระวังของ os.mkdir()การจัดการข้อผิดพลาด
สามารถป้องกันข้อผิดพลาดได้โดยตรวจสอบก่อนว่าไดเรกทอรีมีอยู่แล้วหรือไม่ แล้วค่อยสร้าง โค้ดต่อไปนี้เป็นตัวอย่างที่ชัดเจนimport os
# ระบุพาธของไดเรกทอรีที่จะสร้าง
dir_path = './new_directory'
# ตรวจสอบว่าไดเรกทอรีมีอยู่หรือไม่
if not os.path.exists(dir_path):
    os.mkdir(dir_path)
else:
    print(f"ไดเรกทอรี '{dir_path}' มีอยู่แล้ว")
3. การสร้างไดเรกทอรีแบบเรียกซ้ำโดยใช้ os.makedirs()
การสร้างไดเรกทอรีแบบเรียกซ้ำ
os.makedirs() สามารถถือได้ว่าเป็นฟังก์ชันที่มีความสามารถครอบคลุมกว่า os.mkdir() เนื่องจากสามารถสร้างไดเรกทอรีหลายชั้นได้ในครั้งเดียว จึงสามารถสร้างไดเรกทอรีระดับกลางไปพร้อมกันได้ แม้ว่าไดเรกทอรีแม่จะยังไม่มีอยู่import os
# พาธที่มีไดเรกทอรีระดับกลางอยู่ด้วย
dir_path = './parent_directory/sub_directory'
# สร้างไดเรกทอรีแบบเรียกซ้ำ
os.makedirs(dir_path)parent_directory และ sub_directory ที่อยู่ภายในขึ้นพร้อมกันในครั้งเดียว แม้ไดเรกทอรีระดับกลางจะยังไม่มีอยู่ ก็สามารถสร้างไดเรกทอรีทั้งหมดได้โดยไม่เกิดข้อผิดพลาด ซึ่งแสดงให้เห็นถึงความสะดวกในการใช้งานการจัดการข้อผิดพลาดโดยใช้ exist_ok=True
os.makedirs() มีออปชัน exist_ok ซึ่งช่วยให้สามารถดำเนินการต่อไปได้โดยไม่เกิดข้อผิดพลาด แม้ไดเรกทอรีจะมีอยู่แล้วimport os
dir_path = './parent_directory/sub_directory'
# ไม่ให้เกิดข้อผิดพลาดแม้มีไดเรกทอรีอยู่แล้ว
os.makedirs(dir_path, exist_ok=True)4. การสร้างไดเรกทอรีด้วยโมดูล pathlib
การสร้างไดเรกทอรีโดยใช้อ็อบเจ็กต์ Path
โมดูลpathlib เป็นโมดูลสำหรับจัดการพาธของระบบไฟล์ที่ใช้งานได้ตั้งแต่ Python 3.4 เป็นต้นไป การใช้อ็อบเจ็กต์ Path() ช่วยเพิ่มความอ่านง่ายของโค้ดfrom pathlib import Path
# ระบุพาธของไดเรกทอรี
dir_path = Path('./new_directory')
# สร้างไดเรกทอรี
dir_path.mkdir()pathlib คือสามารถจัดการพาธแบบเชิงวัตถุได้ ช่วยให้โค้ดเข้าใจง่ายและเป็นธรรมชาติมากขึ้นการสร้างไดเรกทอรีแบบรีเคอร์ซีฟและการจัดการข้อผิดพลาด
การสร้างไดเรกทอรีแบบรีเคอร์ซีฟด้วยpathlib ก็ทำได้ง่าย เพียงระบุออปชันเท่านั้นfrom pathlib import Path
# พาธที่มีไดเรกทอรีระดับกลาง
dir_path = Path('./parent_directory/sub_directory')
# สร้างพร้อมไดเรกทอรีระดับกลางทั้งหมด
dir_path.mkdir(parents=True, exist_ok=True)
5. การตรวจสอบการมีอยู่ของไดเรกทอรีและการจัดการข้อผิดพลาด
การตรวจสอบว่าไดเรกทอรีมีอยู่แล้วหรือไม่เป็นพื้นฐานของการจัดการข้อผิดพลาดos และ pathlib ช่วยให้คุณตรวจสอบการมีอยู่ของไดเรกทอรี และจัดการกับไดเรกทอรีได้อย่างปลอดภัยวิธีตรวจสอบโดยใช้โมดูล os
import os
dir_path = './new_directory'
if os.path.exists(dir_path):
    print(f"ไดเรกทอรี '{dir_path}' มีอยู่แล้ว")
else:
    print(f"ไดเรกทอรี '{dir_path}' ไม่มีอยู่")วิธีตรวจสอบโดยใช้ pathlib
from pathlib import Path
dir_path = Path('./new_directory')
if dir_path.exists():
    print(f"ไดเรกทอรี '{dir_path}' มีอยู่แล้ว")
else:
    print(f"ไดเรกทอรี '{dir_path}' ไม่มีอยู่")6. สรุป
ในบทความนี้ เราได้อธิบายอย่างละเอียดเกี่ยวกับวิธีการต่างๆ ในการสร้างไดเรกทอรีด้วย Python.os.mkdir() และ os.makedirs() เราได้ทำความเข้าใจความแตกต่างระหว่างทั้งสอง พร้อมทั้งเรียนรู้การสร้างไดเรกทอรีแบบเรียกซ้ำ (recursive) และการจัดการข้อผิดพลาดด้วย。นอกจากนี้ การใช้ประโยชน์จาก pathlib ซึ่งเป็นมอดูลมาตรฐานใหม่ของ Python ช่วยให้สามารถเขียนโค้ดที่เรียบง่ายและอ่านเข้าใจได้มากขึ้น。  โปรดเลือกวิธีที่เหมาะสมตามการใช้งาน และจัดการไดเรกทอรีอย่างมีประสิทธิภาพ。
 
 


