目次
1. Giới thiệu
Với Python, bạn có thể dễ dàng quản lý tệp và thư mục. Đặc biệt, việc tạo thư mục là một trong những thao tác được thực hiện thường xuyên để sắp xếp tệp, sao lưu và tạo tự động. Trong hướng dẫn này, chúng tôi sẽ giải thích chi tiết cách tạo thư mục bằng các mô-đunos
và pathlib
. Ngoài ra, chúng tôi cũng đề cập đến việc tạo thư mục đệ quy và xử lý lỗi, nhằm giúp người mới bắt đầu với Python dễ hiểu.2. Tạo thư mục bằng os.mkdir()
Cách sử dụng cơ bản
os.mkdir()
là phương pháp cơ bản để tạo một thư mục tại đường dẫn được chỉ định. Tuy nhiên, hàm này có những hạn chế: nếu thư mục cha không tồn tại, nó sẽ gây ra lỗi. Ví dụ, đoạn mã sau là một cách đơn giản để tạo thư mục.import os
# Chỉ định đường dẫn của thư mục cần tạo
dir_path = './new_directory'
# Tạo thư mục
os.mkdir(dir_path)
Trong đoạn mã này, một thư mục sẽ được tạo tại đường dẫn đã chỉ định, nhưng nếu đã tồn tại thư mục cùng tên, sẽ phát sinh FileExistsError
. Đây là điều cần lưu ý khi dùng os.mkdir()
.Xử lý lỗi
Bằng cách kiểm tra xem thư mục đã tồn tại hay chưa trước khi tạo, bạn có thể tránh lỗi. Mã dưới đây là một ví dụ cụ thể.import os
# Chỉ định đường dẫn của thư mục cần tạo
dir_path = './new_directory'
# Kiểm tra xem thư mục có tồn tại hay không
if not os.path.exists(dir_path):
os.mkdir(dir_path)
else:
print(f"Thư mục '{dir_path}' đã tồn tại.")
Với cách này, bạn có thể tránh lỗi khi vô tình cố gắng tạo một thư mục đã tồn tại.
3. Tạo thư mục đệ quy bằng cách dùng os.makedirs()
Tạo thư mục đệ quy
os.makedirs()
có thể được xem là bản mở rộng tương thích của os.mkdir()
. Vì có thể tạo nhiều cấp thư mục cùng lúc, nên ngay cả khi thư mục cha chưa tồn tại, bạn cũng có thể tạo kèm các thư mục trung gian.import os
# Đường dẫn bao gồm thư mục trung gian
dir_path = './parent_directory/sub_directory'
# Tạo thư mục đệ quy
os.makedirs(dir_path)
Trong ví dụ này, parent_directory
và sub_directory
bên trong nó sẽ được tạo cùng lúc. Ngay cả khi các thư mục trung gian chưa tồn tại, mọi thư mục vẫn có thể được tạo mà không phát sinh lỗi, cho thấy tính tiện dụng cao.Xử lý lỗi với exist_ok=True
os.makedirs()
có tùy chọn exist_ok
, cho phép tiếp tục xử lý mà không phát sinh lỗi ngay cả khi thư mục đã tồn tại。import os
dir_path = './parent_directory/sub_directory'
# Không phát sinh lỗi ngay cả khi thư mục đã tồn tại
os.makedirs(dir_path, exist_ok=True)
Với cách này, bạn có thể bỏ qua việc kiểm tra trước xem thư mục có tồn tại hay không, qua đó đơn giản hóa việc xử lý lỗi.4. Tạo thư mục bằng mô-đun pathlib
Tạo thư mục sử dụng đối tượng Path
pathlib
là một mô-đun tiện lợi để thao tác với đường dẫn hệ thống tệp, có thể sử dụng từ Python 3.4 trở đi.Path()
Khi sử dụng Path()
, tính dễ đọc của mã cũng được cải thiện.from pathlib import Path
# Chỉ định đường dẫn của thư mục
dir_path = Path('./new_directory')
# Tạo thư mục
dir_path.mkdir()
Ưu điểm của pathlib
là cho phép thao tác đường dẫn theo hướng đối tượng, giúp tăng tính trực quan của mã.Tạo thư mục đệ quy và xử lý lỗi
Khi dùngpathlib
để tạo thư mục đệ quy, bạn có thể thực hiện rất dễ dàng chỉ bằng cách chỉ định tùy chọn.from pathlib import Path
# Đường dẫn bao gồm các thư mục trung gian
dir_path = Path('./parent_directory/sub_directory')
# Tạo kèm cả các thư mục trung gian
dir_path.mkdir(parents=True, exist_ok=True)
Trong đoạn mã này, nhiều cấp thư mục (bao gồm cả thư mục trung gian) được tạo cùng lúc, và ngay cả khi thư mục đã tồn tại thì cũng không phát sinh lỗi.5. Kiểm tra sự tồn tại của thư mục và xử lý lỗi
Việc kiểm tra xem thư mục đã tồn tại hay chưa là bước cơ bản trong xử lý lỗi.os
mô-đun và pathlib
được dùng để kiểm tra sự tồn tại của thư mục và thao tác với thư mục một cách an toàn.Cách kiểm tra bằng mô-đun os
import os
dir_path = './new_directory'
if os.path.exists(dir_path):
print(f"Thư mục '{dir_path}' đã tồn tại.")
else:
print(f"Thư mục '{dir_path}' không tồn tại.")
Cách kiểm tra bằng pathlib
from pathlib import Path
dir_path = Path('./new_directory')
if dir_path.exists():
print(f"Thư mục '{dir_path}' đã tồn tại.")
else:
print(f"Thư mục '{dir_path}' không tồn tại.")
6. Tổng kết
Trong bài viết này, chúng ta đã giải thích chi tiết nhiều cách khác nhau để tạo thư mục bằng Python. Chúng ta đã hiểu sự khác biệt giữaos.mkdir()
và os.makedirs()
, đồng thời học thêm về việc tạo thư mục đệ quy và xử lý lỗi. Hơn nữa, chúng ta cũng nhận thấy rằng tận dụng pathlib
, mô-đun chuẩn mới của Python, giúp viết mã đơn giản và dễ đọc hơn。 Hãy chọn phương pháp phù hợp nhất theo nhu cầu và thực hiện thao tác thư mục một cách hiệu quả。