Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tạo thư mục (Directory) trong Python: Hướng dẫn thực hành

Tạo thư mục (Directory) trong Python: Hướng dẫn thực hành

Phương thức os.mkdir() của Python tạo thư mục trống trên hệ thống tập tin. Bạn không thể dùng phương thức này để tạo thư mục trong thư mục chưa tồn tại. Phương thức os.makedirs() tạo thư mục trống theo cách đệ quy.

Tập tin cho phép lưu trữ dữ liệu bên ngoài chương trình để chương trình tham chiếu sau này. Khi làm việc với tập tin, bạn có thể quyết định tạo thư mục mới để lưu tập tin.

Đó là lúc module os của Python phát huy tác dụng. Module os bao gồm hai phương thức os.mkdir() và os.makedirs() để tạo thư mục trong Python.

Hướng dẫn này sẽ khám phá cách tạo thư mục trong Python dùng os.mkdir() và os.makedirs(). Ta cũng sẽ dùng vài ví dụ để minh họa cách hoạt động.

Tổng quan module os trong Python

Trước khi làm việc với tập tin trong Python, bạn cần import module os. Module os tích hợp sẵn trong Python. Nó chứa nhiều phương thức để giao diện với hệ điều hành cơ bản của máy tính.

Trong trường hợp này, ta quan tâm đến phương thức hệ thống tập tin của module os, có thể dùng để làm việc với tập tin. Ta dùng câu lệnh import Python để import os vào chương trình:

import os

Tạo thư mục trong Python

Phương thức os.mkdir() dùng để tạo một thư mục đơn lẻ. Ví dụ, nếu ta tạo chương trình cần thư mục mới lưu đầu ra, ta sẽ dùng os.mkdir().

Cú pháp cho phương thức os.mkdir():

os.mkdir(path, access)

Hàm os.mkdir() nhận hai tham số:

  • path: đường dẫn tập tin nơi bạn muốn tạo thư mục (bắt buộc)
  • access: quyền truy cập bạn muốn cấp cho thư mục (tùy chọn)

Ví dụ os.mkdir() trong Python

Hãy khám phá ví dụ minh họa cách dùng os.mkdir().

Giả sử ta tạo chương trình phân tích danh sách điểm kiểm tra toán của học sinh. Chương trình lưu trữ việc mỗi học sinh có đỗ bài kiểm tra gần đây không.

Đầu tiên, ta muốn tạo thư mục lưu dữ liệu. Điều này đảm bảo dữ liệu tách biệt khỏi phần còn lại của chương trình.

Mã tạo thư mục cho dữ liệu:

import os
path = "/home/school/math/grades/final"
os.mkdir(path)
print("/home/school/math/grades/final đã được tạo.")

Mã tạo thư mục mới tên final trong thư mục /home/school/math/grades trong hệ điều hành. Sau đó trả về thông báo:

/home/school/math/grades/final đã được tạo.

Phương thức mkdir() chỉ tạo một thư mục tại một thời điểm. Ta không thể tạo thư mục final rồi tạo thư mục jan2020 bên trong final.

Ví dụ quyền os.mkdir()

Ta có thể dùng tham số tùy chọn access để chỉ định quyền cho thư mục. Mặc định, quyền truy cập cho thư mục mkdir() tạo là 777. Nghĩa là thư mục có thể đọc và ghi bởi chủ sở hữu và tất cả người dùng khác.

Nhưng nếu ta muốn đặt quyền riêng?

Giả sử hệ điều hành có thể truy cập bởi nhiều giáo viên, và ta chỉ muốn cấp quyền ghi cho chủ sở hữu. Ta cần dùng quyền 755. Quyền này quy định tập tin có thể đọc và truy cập bởi tất cả người dùng. Nhưng chỉ chủ sở hữu mới ghi được.

Mã tạo thư mục làm việc với quyền tùy chỉnh:

import os
path = "/home/school/math/grades/final"
access = 0o755
os.mkdir(path, access)
print("/home/school/math/grades/final đã được tạo.")

Ta tạo thư mục đích /home/school/math/grades/final với quyền truy cập 755. Nghĩa là tập tin có thể đọc bởi tất cả người dùng, nhưng chỉ chủ sở hữu mới ghi được. Chương trình in thông báo:

/home/school/math/grades/final đã được tạo.

Lưu ý quan trọng: biến access bằng 0o755 trong mã. Ta làm vậy vì quyền truy cập dùng tiền tố bát phân, nên cần chỉ định 0o trước tham số access.

Để học cách kiểm tra tập tin hoặc thư mục có tồn tại, xem hướng dẫn kiểm tra tập tin tồn tại trong Python của chúng tôi.

Tạo nhiều thư mục trong Python

Phương thức os.makedirs() của Python tạo thư mục theo cách đệ quy. Bạn có thể dùng phương thức này tạo thư mục bên trong thư mục chưa tồn tại. os.makedirs() chấp nhận một đối số: đường dẫn thư mục bạn muốn tạo.

Cú pháp cho os.makedirs():

os.makedirs(path, access)

Phương thức này chấp nhận cùng đối số với os.mkdir().

Ví dụ os.makedirs() trong Python

Thường có trường hợp ta cần tạo thư mục tồn tại trong thư mục mới khác.

Ví dụ, ta tạo chương trình lưu dữ liệu điểm kiểm tra toán. Thay vì lưu tất cả dữ liệu trong một thư mục, ta có thể lưu trong nhiều thư mục.

Mỗi thư mục tương ứng với năm và tháng của bài kiểm tra. Lưu dữ liệu theo cách này khiến tập tin dễ tìm khi cần tham chiếu lại.

Hãy dùng ví dụ kiểm tra toán minh họa cách os.makedirs() hoạt động.

Yêu cầu chương trình thay đổi. Bây giờ ta muốn lưu dữ liệu trong thư mục tùy thuộc vào năm và tháng của bài kiểm tra. Ta có thể hoàn thành nhiệm vụ dùng mã sau:

import os
path = "/home/school/math/grades/2020/02"
access = 0o755
os.makedirs(path, access)
print("/home/school/math/grades/2020/02 đã được tạo.")

Giả sử ta chưa có thư mục 2020 hoặc 02. Mã này sẽ trước tạo thư mục 2020, sau đó tạo thư mục 02 bên trong 2020. Ta gán quyền truy cập 755 cho thư mục này.

Sau khi chương trình tạo thư mục, nó in thông báo:

/home/school/math/grades/2020/02 đã được tạo.

Kết luận

Tạo thư mục là thao tác phổ biến trong Python khi làm việc với tập tin. Phương thức os.mkdir() tạo thư mục đơn lẻ, và os.makedirs() tạo thư mục đa cấp.

Hướng dẫn này thảo luận cách dùng cả os.mkdir() và os.makedirs() tạo thư mục trong Python. Ta cũng khám phá ví dụ cho từng phương thức.

Bạn quan tâm tìm hiểu thêm về Python? Xem hướng dẫn hoàn chỉnh "Cách học Python" để có mẹo và lời khuyên chuyên gia về cách học ngôn ngữ lập trình này.