ในไพธอน มีคำสั่งในการสร้างโฟลเดอร์ (Folder) หรือไดเรกทอรี (Directory) สองตัว คือ os.mkdir() และ os.makedirs() แล้วสองตัวนี้ต่างกันอย่างไร
ถ้าสังเกตุจากชื่อฟังก์ชัน จะเห็นว่าฟังก์ชันตัวที่สองมีการเติม s นั้นเป็นการบอกใบ้ว่า os.makedirs() สามารถสร้างโฟลเดอร์ได้มากกว่าหนึ่งตัวในคำสั่งเดียว
เอกสารของไพธอนได้ระบุเอาไว้ว่า mkdir สร้างโฟลเดอร์ได้ครั้งละตัวเท่านั้น ในขณะที่ makedirs สามารถสร้างโฟลเดอร์แบบซ้อนกันได้มากกว่าหนึ่งตัวต่อครั้ง
ทดสอบ
os.mkdir("C:\dataa")
เมื่อลองรันดูจะพบโฟลเดอร์ dataa ในไดวฟ์ C เป็นปกติ
จากนั้นทำการลบโฟล์เดอร์ dataa ทิ้ง แล้วรันคำสั่งต่อไปนี้
os.mkdir("C:\dataa\datab")
เราจะได้ error แบบนี้ เหตุเพราะ mkdir พยายามจะสร้างโฟลเดอร์ datab ตัวเดียว ใน C:\dataa แต่เนื่องจากไม่มีโฟลเดอร์ dataa ฉะนั้นจึงเกิด error ตัวนี้ขึ้นมา
ที่นี้มาลอง os.makedirs() กันบ้าง ให้รันคำสั่งต่อไปนี้ลงไป
os.makedirs("C:\data2\data3")
เราจะพบว่ามีโฟลเดอร์ data2 ปรากฎในไดร์ฟ C ถ้าเข้าไปในโฟลเดอร์ data2 ก็จะพบโฟลเดอร์ data3 ตามคำสั่งที่ได้ใส่เอาไว้
ติดตามเทคนิกใหม่ๆได้ในเฟสบุ๊ค
https://www.facebook.com/uaychaiblog