makedirs để tạo các thư mục phân cấp sâu một cách đệ quy trong Python

Kinh doanh

Lỗi khi tạo thư mục mới với os.mkdir () trong thư mục không tồn tại

os.mkdir()Đây là phương thức dùng để tạo một thư mục (folder) bằng Python. Nếu bạn cố gắng tạo một thư mục mới trong một thư mục không tồn tại, một lỗi sẽ xảy ra.(FileNotFoundError)

import os

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

Tạo thư mục đệ quy với os.madeirs ()

Nếu bạn sử dụng os.makedirs () thay vì os.mkdir (), nó sẽ tạo một thư mục trung gian, vì vậy bạn có thể tạo một cách đệ quy một thư mục phân cấp sâu.

os.makedirs('not_exist_dir/new_dir')

Trong trường hợp của ví dụ này, nó sẽ tạo tất cả chúng cùng một lúc. Sẽ không sao nếu có nhiều thư mục trung gian mới.

  • thư mục trung gian:not_exist_dir
  • thư mục cuối cùng:new_dir

Tuy nhiên, nếu thư mục cuối đã tồn tại thì sẽ xảy ra lỗi.(FileExistsError)

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

Nếu có một đối số tồn tại

Kể từ Python 3.2, đối số tồn tại đã được thêm vào và nếu tồn tại_ok = True, sẽ không có lỗi nào xảy ra ngay cả khi thư mục cuối đã tồn tại. Nếu thư mục cuối không tồn tại, một thư mục mới sẽ được tạo, và nếu nó tồn tại, sẽ không có gì được thực hiện. Điều này rất tiện lợi vì bạn không cần phải kiểm tra trước sự tồn tại của thư mục đầu cuối.

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

Nếu đối số tồn tại bị thiếu

Nếu bạn có một phiên bản Python cũ hơn và không có đối số being_ok trong os.madeirs, bạn có thể sử dụng os.path.exists để xác định xem có thư mục kết thúc hay không, sau đó chỉ tạo một thư mục mới nếu không có. thư mục cuối.

if not os.path.exists('exist_dir/exist_dir'):
    os.makedirs('exist_dir/exist_dir')
Copied title and URL