makedirs untuk mencipta direktori hierarki dalam secara rekursif dalam Python

Perniagaan

Ralat semasa mencipta direktori baharu dengan os.mkdir() dalam direktori yang tidak wujud

os.mkdir()Ini ialah kaedah yang digunakan untuk mencipta direktori (folder) dalam Python. Jika anda cuba mencipta direktori baharu dalam direktori yang tidak wujud, ralat akan berlaku.(FileNotFoundError)

import os

os.mkdir('not_exist_dir/new_dir')
# FileNotFoundError

Cipta direktori secara rekursif dengan os.madeirs()

Jika anda menggunakan os.makedirs() dan bukannya os.mkdir(), ia akan mencipta direktori perantaraan, jadi anda boleh mencipta direktori hierarki dalam secara rekursif.

os.makedirs('not_exist_dir/new_dir')

Dalam kes contoh ini, ia akan mencipta kesemuanya sekali gus. Tidak mengapa jika terdapat beberapa direktori perantaraan baharu.

  • direktori perantaraan:not_exist_dir
  • direktori akhir:new_dir

Walau bagaimanapun, jika direktori akhir sudah wujud, ralat akan berlaku.(FileExistsError)

os.makedirs('exist_dir/exist_dir')
# FileExistsError

Jika ada hujah wujud_ok

Sejak Python 3.2, argumen exist_ok telah ditambah, dan jika exist_ok=True, tiada ralat akan berlaku walaupun direktori akhir sudah wujud. Jika direktori akhir tidak wujud, yang baharu akan dibuat, dan jika ia wujud, tiada apa yang akan dilakukan. Ini mudah kerana anda tidak perlu menyemak kewujudan direktori terminal terlebih dahulu.

os.makedirs('exist_dir/exist_dir', exist_ok=True)

Jika hujah exist_ok tiada

Jika anda mempunyai versi Python yang lebih lama dan tidak mempunyai hujah exist_ok dalam os.madeirs, anda boleh menggunakan os.path.exists untuk menentukan sama ada terdapat direktori tamat atau tidak, dan kemudian buat yang baharu hanya jika tiada direktori tamat.

if not os.path.exists('exist_dir/exist_dir'):
    os.makedirs('exist_dir/exist_dir')