Hướng dẫn cách tạo thư mục trong python. Bạn sẽ học được cách tạo thư mục trong python bằng hàm mkdir() trong module os, cách tạo thư mục trong python cùng các thư mục trung gian bằng hàm mkdirs(), cũng như cách tạo thư mục trong python bằng phương thức Path.rmdir() trong module pathlib sau bài học này.
Tạo thư mục trong python | Hàm mkdir()
Để tạo thư mục mới trong python, chúng ta sử dụng hàm mkdir() trong module os với cú pháp sau đây:
os.mkdir(folder_path, mode=0o777, *
, dir_fd=None)
Thông thường chúng ta bỏ đi phần lớn các đối số trong hàm và chỉ dùng cú pháp rút gọn sau đây:
os.mkdir(folder_path)
Trong đó folder_path
là đường dẫn của thư mục cần tạo.
Cách sử dụng thì đơn giản như ví dụ sau:
Giả sử bạn có một thư mục có cấu trúc như sau:
data/ ├── user │ ├── dir │ └── user.txt └── mkdir.py
Nếu bạn muốn tạo một thư mục mới address
nằm trong thư mục user
, chúng ta sẽ viết như sau:
import os |
Khi đó thư mục address
sẽ được tạo ra như sau:
data/ ├── user │ ├── dir │ ├── address │ └── user.txt └── mkdir.py
Cần lưu ý, hàm mkdir() không thể tạo thư mục trung gian, ví dụ như nếu bạn muốn tạo ra thư mục ./user/name/kiyoshi
nhưng thư mục trung gian ./user/name
không tồn tại trước đó, lỗi FileNotFoundError sẽ xảy ra:
import os |
Lại nữa, nếu như bạn tạo một thư mục trong python mà thư mục đó vốn đã tồn tại trước đó, lỗi FileExistsError sẽ xảy ra:
FileExistsError: [WinError 183] Cannot create a file when that file already exists: |
Tạo thư mục trong python cùng các thư mục trung gian | Hàm mkdirs()
Ở phần trên bạn đã biết chúng ta không thể dùng hàm kdir() để tạo một thư mục nếu thư mục trung gian trong đường dẫn chưa tồn tại.
Khi bạn muốn tạo thư mục trong python với cả thư mục trung gian, hãy dùng hàm mkdirs() với cú pháp sau đây:
os.makedirs(folder_path, mode=0o777, exist_ok=False)
Trong đó
folder_path
là đường dẫn của thư mục cần tạo.mode=0o777
chỉ định quyền truy cập của folder cần tạoexist_ok
: chỉ định hành động khi chúng ta tạo một thư mục vốn đã tồn tại. Nếu chỉ đinhexist_ok=True
, lỗi cũng sẽ không xảy ra khi chúng ta tạo thư mục mà thư mục vốn đã tồn tại trước đó.
Thông thường chúng ta bỏ đi phần lớn các đối số trong hàm và chỉ dùng cú pháp rút gọn sau đây:
os.makedirs(folder_path)
Chúng ta sử dụng hàm os.makedirs() tương tự như với hàm os.makedir, khi muốn tạo một thư mục con trong một thư mục mẹ.
import os |
Điểm khác biệt là khi nếu trong đường dẫn của thư mục cần tạo có chứa thư mục trung gian chưa tồn tại trước đó, thì thư mục trung gian này cũng sẽ được tạo ra luôn:
import os |
Ngoài ra, để tránh xảy ra lỗi khi bạn tạo một thư mục mà thư mục đó vốn đã tồn tại trước đó, chúng ta sử dụng hàm os.mkdirs() kèm đối số exist_ok=True
như sau:
import os |
Tạo thư mục trong python | Phương thức Path.rmdir()
Ngoài cách sử dụng hàm mkdir() hay mkdirs(), bạn cũng có thể dùng phương thức Path.rmdir() trong module pathlib để tạo thư mục trong python, với cú pháp sau đây:
Path.mkdir(mode=0o777, parents=False, exist_ok=False)
Trong đó
Path
là một instance được tạo ra từ class pathlib.Path trong module pathlib chứa thông tin đường dẫn của thư mục cần tạo.mode
chỉ định quyền truy cập của thư mục cần tạoparents
chỉ định có tạo thư mục trung gian hay không.parents=True
sẽ giúp tạo thư mục trung gian nếu thư mục này không tồn tại trước đó.exist_ok
chỉ định có trả lỗi về khi tạo một thư mục mà thư mục đó vốn đã tồn tại.exist_ok=True
sẽ giúp tránh xảy ra lỗi khi chúng ta tạo một thư mục mà thư mục đó vốn đã tồn tại trước đó.
Thông thường chúng ta bỏ đi phần lớn các đối số trong hàm và chỉ dùng cú pháp rút gọn sau đây:
Path.mkdir()
Ví dụ, chúng ta có thư mục có cấu trúc sau:
data/ ├── user │ ├── dir │ └── user.txt └── mkdir.py
Giả sử chúng ta muốn tạo thư mục address
bên trong thư mục user
, chúng ta viết:
import pathlib |
Sau khi chạy, thư mục address
sẽ được tạo ra.
data/ ├── user │ ├── dir │ ├── address │ └── user.txt └── mkdir.py
Nếu lúc này chúng ta muốn tạo lại thư mục address
bằng cách chạy lại lệnh trên, do thư mục address
đã tồn tại nên lỗi xảy ra:
FileExistsError:FileExistsError: [WinError 183] Cannot create a file when that file already exists: 'user/address' |
Để tránh lỗi này, chúng ta cần chỉ định thêm đối số exist_ok=True
khi tạo một thư mục mà thư mục đó vốn đã tồn tại trước đó:
import pathlib |
Giả sử chúng ta muốn tạo thư mục ./user/name/kiyoshi
mà thư mục trung gian ./user/name
chưa tồn tại trước đó, chúng ta sẽ chỉ định thêm đối số parents=True
để tránh lỗi xảy ra như sau:
import pathlib |
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn về cách tạo thư mục trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.
URL Link
HOME › python cơ bản - lập trình python cho người mới bắt đầu>>16. xử lý file trong python