เกิดข้อผิดพลาดเมื่อสร้างไดเร็กทอรีใหม่ด้วย os.mkdir() ในไดเร็กทอรีที่ไม่มีอยู่
os.mkdir()
นี่เป็นวิธีการที่ใช้สร้างไดเร็กทอรี (โฟลเดอร์) ใน Python หากคุณพยายามสร้างไดเร็กทอรีใหม่ในไดเร็กทอรีที่ไม่มีอยู่จริง จะเกิดข้อผิดพลาดขึ้น(FileNotFoundError
)
import os os.mkdir('not_exist_dir/new_dir') # FileNotFoundError
สร้างไดเร็กทอรีแบบเรียกซ้ำด้วย os.madeirs()
หากคุณใช้ os.makedirs() แทน os.mkdir() มันจะสร้างไดเร็กทอรีระดับกลาง ดังนั้นคุณจึงสามารถสร้างไดเร็กทอรีแบบลำดับชั้นแบบเรียกซ้ำได้
os.makedirs('not_exist_dir/new_dir')
ในกรณีของตัวอย่างนี้ มันจะสร้างทั้งหมดพร้อมกัน ไม่เป็นไรหากมีไดเร็กทอรีระดับกลางใหม่หลายไดเร็กทอรี
- ไดเรกทอรีกลาง:
not_exist_dir
- ไดเรกทอรีสุดท้าย:
new_dir
อย่างไรก็ตาม หากไดเร็กทอรีสิ้นสุดมีอยู่แล้ว ข้อผิดพลาดจะเกิดขึ้น(FileExistsError
)
os.makedirs('exist_dir/exist_dir') # FileExistsError
หากมีข้อโต้แย้งที่มีอยู่_ok
ตั้งแต่ Python 3.2 อาร์กิวเมนต์มีอยู่_ok ถูกเพิ่มเข้ามา และถ้ามีอยู่_ok=True จะไม่มีข้อผิดพลาดเกิดขึ้นแม้ว่าไดเร็กทอรีสิ้นสุดจะมีอยู่แล้ว ถ้าไม่มีไดเร็กทอรี end ไดเร็กทอรีใหม่จะถูกสร้างขึ้น และถ้าไดเร็กทอรี end จะไม่มีสิ่งใดเกิดขึ้น สะดวกเพราะคุณไม่จำเป็นต้องตรวจสอบการมีอยู่ของไดเร็กทอรีเทอร์มินัลล่วงหน้า
os.makedirs('exist_dir/exist_dir', exist_ok=True)
หากอาร์กิวเมนต์มีอยู่_ok หายไป
หากคุณมี Python เวอร์ชันเก่าและไม่มีอาร์กิวเมนต์ที่มีอยู่แล้วใน os.madeirs คุณสามารถใช้ os.path.exists เพื่อตรวจสอบว่ามีไดเร็กทอรีสิ้นสุดหรือไม่ จากนั้นสร้างไดเร็กทอรีใหม่ก็ต่อเมื่อไม่มี สิ้นสุดไดเรกทอรี
if not os.path.exists('exist_dir/exist_dir'): os.makedirs('exist_dir/exist_dir')