ความแตกต่างระหว่าง os.mkdir() กับ os.makedirs() ใน Python

ในไพธอน มีคำสั่งในการสร้างโฟลเดอร์ (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 ตัวนี้ขึ้นมา

mkdir1

ที่นี้มาลอง os.makedirs() กันบ้าง ให้รันคำสั่งต่อไปนี้ลงไป

os.makedirs("C:\data2\data3")

เราจะพบว่ามีโฟลเดอร์ data2 ปรากฎในไดร์ฟ C ถ้าเข้าไปในโฟลเดอร์ data2 ก็จะพบโฟลเดอร์ data3 ตามคำสั่งที่ได้ใส่เอาไว้

ติดตามเทคนิกใหม่ๆได้ในเฟสบุ๊ค
https://www.facebook.com/uaychaiblog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s