PHP
Python

Trang chủ

Directories – Thư mục trong Python

Ngôn ngữ Python là một ngôn ngữ lập trình đa mục đích, nổi tiếng với cú pháp dễ đọc, dễ học và tính ứng dụng cao. Trong lĩnh vực phát triển web, Python thường được sử dụng thông qua các framework như Django và Flask để xây dựng các ứng dụng web mạnh mẽ, bảo mật và dễ mở rộng. Trong chuyên mục này, Vietnix không chỉ cung cấp kiến thức nền tảng về ngôn ngữ Python mà còn hướng dẫn chi tiết cách xây dựng các ứng dụng web thực tế, sử dụng các framework phổ biến và áp dụng các kỹ thuật tiên tiến. Vietnix cam kết liên tục cập nhật những bài viết mới nhất về các tính năng mới của Python, các thư viện hỗ trợ hữu ích và những phương pháp tốt nhất, giúp bạn khai thác tối đa sức mạnh của Python và hoàn thiện kỹ năng lập trình web của mình.
html
CSS
javascript
sql
python
php
c
c++
bootstrap
react
mysql
reactjs
vuejs
Javascript Tutorials
07/03/2025
15 phút đọc
Theo dõi Vietnix trên

Directories – Thư mục trong Python

Trong Python, thư mục (directory) là nơi lưu trữ các tệp và thư mục con, giúp tổ chức dữ liệu một cách có hệ thống. Việc thao tác với thư mục là một phần quan trọng khi làm việc với hệ thống tệp, từ kiểm tra, tạo mới, liệt kê nội dung đến thay đổi hay xóa thư mục. Bài viết này sẽ hướng dẫn bạn cách làm việc với thư mục trong Python thông qua các phương thức của module osshutil. Sau khi đọc xong, bạn sẽ có thể quản lý thư mục trong Python một cách dễ dàng và hiệu quả.

Điểm chính cần nắm

  • Thư mục trong Python là gì? Thư mục (directory) là nơi chứa file và thư mục con, giúp tổ chức dữ liệu trên hệ thống tệp.
  • Kiểm tra thư mục có tồn tại không Dùng os.path.exists() để kiểm tra xem thư mục có tồn tại trước khi thực hiện các thao tác.
  • Tạo thư mục mới trong Python Dùng os.makedirs() để tạo thư mục kèm thư mục cha hoặc os.mkdir() để tạo một thư mục đơn lẻ.
  • Lấy thư mục làm việc hiện tại Sử dụng os.getcwd() để lấy đường dẫn của thư mục hiện tại mà chương trình đang chạy.
  • Liệt kê nội dung thư mục Dùng os.listdir() để lấy danh sách các file và thư mục con bên trong một thư mục cụ thể.
  • Thay đổi thư mục làm việc Dùng os.chdir() để di chuyển đến một thư mục khác trên hệ thống.
  • Xóa thư mục Dùng os.rmdir() để xóa thư mục trống hoặc shutil.rmtree() để xóa cả thư mục chứa file/con.
  • Vietnix – Giải pháp lưu trữ uy tín, tốc độ, bảo mật hàng đầu Vietnix cung cấp dịch vụ server, hosting, VPS chất lượng cao, hỗ trợ 24/7.

Directory – Thư mục trong Python là gì?

Thư mục trong Python (directory) là khu vực trên hệ thống tệp dùng để chứa file và các thư mục con khác. Python cung cấp nhiều phương thức trong module osshutil để làm việc với thư mục như: tạo, kiểm tra, liệt kê, thay đổi và xóa.

Python hỗ trợ các module chính để thao tác với thư mục:

  • shutil: Hỗ trợ sao chép, di chuyển và xóa thư mục.
  • osos.path: Làm việc với đường dẫn, kiểm tra và thay đổi thư mục.
Thư mục trong Python
Thư mục trong Python

Kiểm tra thư mục có tồn tại không

Trước khi thực hiện các thao tác trên thư mục trong Python bạn thường cần kiểm tra xem thư mục có tồn tại hay không. Chúng ta có thể kiểm tra sự tồn tại của thư mục bằng cách sử dụng hàm os.path.exists() trong Python. Hàm này nhận một chuỗi đại diện cho đường dẫn trong hệ thống tệp, có thể là:

  • Đường dẫn tương đối (Relative path) − Đường dẫn liên quan đến thư mục làm việc hiện tại.
  • Đường dẫn tuyệt đối (Absolute path) − Một đường dẫn hoàn chỉnh bắt đầu từ thư mục gốc.

Ví dụ:

Trong ví dụ sau, mình sẽ kiểm tra xem đường dẫn thư mục đã cho có tồn tại hay không bằng cách sử dụng hàm os.path.exists():

import os

directory_path = "/vietnix/data"
if os.path.exists(directory_path):
    print(f"Thư mục '{directory_path}' tồn tại.")
else:
    print(f"Thư mục '{directory_path}' không tồn tại.")

Kết quả:

  • Nếu thư mục tồn tại thì màn hình hiển thị như sau:

Thư mục ‘/vietnix/data’ tồn tại.

  • Và trong trường hợp thư mục không tồn tại thì thông báo sẽ là:

Thư mục ‘/vietnix/data’ không tồn tại.

Tạo thư mục mới trong Python

Sử dụng hàm os.makedirs()

Dùng os.makedirs() để tạo thư mục trong Python, kể cả khi các thư mục trung gian chưa tồn tại. Hàm này nhận một đường dẫn (path) và có thể thiết lập quyền truy cập (mode) cho thư mục mới bằng một giá trị bát phân (ví dụ: 0o755). Nếu không chỉ định, hệ thống sẽ áp dụng quyền mặc định dựa trên umask.

Ví dụ:

Trong ví dụ sau, chúng ta tạo một thư mục mới bằng cách sử dụng hàm os.makedirs():

import os

new_directory = "/vietnix/logs"

try:
    os.makedirs(new_directory, exist_ok=True)
    print(f"Thư mục '{new_directory}' đã được tạo thành công.")
except OSError as e:
    print(f"Thư mục '{new_directory}' không được tạo. {e}")

Kết quả:

Nếu thư mục chưa tồn tại, chương trình sẽ tạo và in ra màn hình thông báo. Nếu thư mục đã tồn tại hoặc có lỗi khác, chương trình sẽ hiển thị lỗi tương ứng.

Thư mục ‘/vietnix/logs’ đã được tạo thành công.

Sử dụng phương thức mkdir()

Dùng phương thức mkdir() từ module os để tạo thư mục trong thư mục hiện tại. Chỉ cần truyền tên thư mục vào phương thức, Python sẽ tạo nó nếu chưa tồn tại. Tuy nhiên, nếu thư mục đã có sẵn hoặc đường dẫn cha chưa tồn tại, chương trình sẽ báo lỗi.

Cú pháp:

os.mkdir("new_directory_name")

Ví dụ:

Dưới đây là một ví dụ để tạo thư mục “test” trong thư mục hiện tại:

import os

# Tạo thư mục "vietnix_logs" trong thư mục hiện tại
os.mkdir("vietnix_logs")
print("Thư mục 'vietnix_logs' đã được tạo thành công.")

Kết quả:

Thư mục ‘vietnix_logs’ đã được tạo thành công.

  • Nếu thư mục đã tồn tại, chương trình sẽ báo lỗi:

FileExistsError: [Errno 17] File exists: ‘vietnix_logs’

iconLưu ý

  • Nếu muốn tránh lỗi khi thư mục đã tồn tại, bạn có thể dùng os.makedirs("vietnix_logs", exist_ok=True).
  • mkdir() chỉ tạo được một thư mục, còn nếu cần tạo cả thư mục cha chưa tồn tại, bạn nên dùng os.makedirs().

Lấy thư mục làm việc hiện tại

Để lấy thư mục làm việc hiện tại trong Python, bạn có thể sử dụng hàm os.getcwd(). Hàm này trả về một chuỗi đại diện cho thư mục làm việc hiện tại nơi code Python đang chạy.

Cú pháp:

current_directory = os.getcwd()

Ví dụ:

Dưới đây là một ví dụ để hiển thị thư mục làm việc hiện tại bằng cách sử dụng hàm getcwd():

import os

current_directory = os.getcwd()
print(f"Thư mục hiện tại: {current_directory}")

Kết quả: (ví dụ chạy trên máy chủ Vietnix)

Thư mục hiện tại: /vietnix/projects

Liệt kê nội dung thư mục

Bạn có thể liệt kê nội dung của một thư mục bằng cách sử dụng hàm os.listdir(). Hàm này trả về một danh sách tất cả các tệp và thư mục trong đường dẫn thư mục được chỉ định.

Ví dụ:

Trong ví dụ dưới đây, chúng ta liệt kê nội dung của đường dẫn thư mục được chỉ định bằng cách sử dụng hàm listdir():

import os

directory_path = "/vietnix/backups"

try:
    contents = os.listdir(directory_path)
    print(f"Nội dung của '{directory_path}':")
    for item in contents:
        print(item)
except OSError as e:
    print(f"Lỗi: Không thể liệt kê nội dung của thư mục '{directory_path}'. {e}")

Kết quả:

  • Nếu thư mục tồn tại và có nội dung, chương trình sẽ in danh sách file/folder bên trong, ví dụ:

Nội dung của ‘/vietnix/backups’:
backup1.zip
backup2.zip
database.sql

  • Nếu thư mục không tồn tại hoặc gặp lỗi quyền truy cập, chương trình sẽ hiển thị lỗi, ví dụ:

Lỗi: Không thể liệt kê nội dung của thư mục ‘/vietnix/backups’. [Errno 2] No such file or directory: ‘/vietnix/backups’

Thay đổi thư mục làm việc

Bạn có thể thay đổi thư mục hiện tại bằng cách sử dụng phương thức chdir(). Phương thức này nhận một đối số, đó là tên của thư mục mà bạn muốn đặt làm thư mục hiện tại.

Cú pháp:

os.chdir("path/to/new_directory")

Ví dụ:

import os

new_directory = "/vietnix/configs"

try:
    os.chdir(new_directory)
    print(f"Đã chuyển đến thư mục '{new_directory}'.")
except OSError as e:
    print(f"Lỗi: Không thể chuyển đến thư mục '{new_directory}'. {e}")

Kết quả:

  • Nếu thư mục trong Python tồn tại, chương trình sẽ in:

Đã chuyển đến thư mục ‘/vietnix/configs’.

  • Nếu thư mục không tồn tại hoặc bị lỗi quyền truy cập, chương trình sẽ báo lỗi:

Lỗi: Không thể chuyển đến thư mục ‘/vietnix/configs’. [Errno 2] No such file or directory: ‘/vietnix/configs’

Xóa thư mục trong Python

Bạn có thể xóa một thư mục trống trong Python bằng cách sử dụng phương thức os.rmdir(). Nếu thư mục chứa các tệp hoặc các thư mục khác, bạn có thể sử dụng phương thức shutil.rmtree() để xóa nó theo cách đệ quy.

Cú pháp:

os.rmdir(directory_path)
# or
shutil.rmtree(directory_path)

Ví dụ:

Trong ví dụ sau, chúng ta xóa một thư mục trống bằng cách sử dụng phương thức os.rmdir():

import os
import shutil

directory_path = "/vietnix/temp"

try:
    shutil.rmtree(directory_path)
    print(f"Thư mục '{directory_path}' đã bị xóa.")
except OSError as e:
    print(f"Lỗi: Không thể xóa thư mục '{directory_path}'. {e}")

Kết quả:

  • Nếu thư mục tồn tại và đã bị xóa thành công, chương trình sẽ in:

Thư mục ‘/vietnix/temp’ đã bị xóa.

  • Nếu thư mục không tồn tại hoặc có lỗi quyền truy cập, chương trình sẽ báo lỗi:

Lỗi: Không thể xóa thư mục ‘/vietnix/temp’. [Errno 2] No such file or directory: ‘/vietnix/temp’

Vietnix – Giải pháp lưu trữ uy tín, tốc độ, bảo mật hàng đầu

Vietnix là đơn vị cung cấp dịch vụ thuê máy chủ (server), hosting, VPS, domain hàng đầu tại Việt Nam. Với cam kết mang đến giải pháp lưu trữ hiệu quả, bảo mật cao, Vietnix không ngừng nâng cấp hệ thống và dịch vụ để đảm bảo hiệu suất tối ưu, uptime cao cùng đội ngũ hỗ trợ kỹ thuật 24/7. Hơn 80.000 khách hàng đã tin tưởng lựa chọn Vietnix nhờ vào chất lượng vượt trội và khả năng bảo vệ dữ liệu toàn diện cho doanh nghiệp.

Thông tin liên hệ:

  • Website: https://vietnix.vn/
  • Hotline: 18001093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.

Câu hỏi thường gặp

Làm sao để kiểm tra xem một thư mục có tồn tại không?

Bạn có thể sử dụng hàm os.path.exists("duong_dan") để kiểm tra xem thư mục có tồn tại hay không. Nếu thư mục tồn tại, hàm sẽ trả về True, ngược lại trả về False.

Sự khác biệt giữa os.mkdir()os.makedirs() là gì?

Hàm os.mkdir() chỉ tạo được một thư mục đơn lẻ và sẽ báo lỗi nếu thư mục cha chưa tồn tại. Trong khi đó, os.makedirs() có thể tạo nhiều cấp thư mục cùng lúc, giúp tránh lỗi khi thư mục cha chưa tồn tại.

Làm thế nào để lấy đường dẫn thư mục hiện tại?

Bạn có thể dùng os.getcwd() để lấy đường dẫn của thư mục trong Python làm việc hiện tại. Hàm này trả về một chuỗi biểu thị đường dẫn thư mục nơi code Python đang chạy.

Làm sao để xóa một thư mục trong Python có chứa file?

Hàm os.rmdir("duong_dan") chỉ có thể xóa thư mục trống. Nếu thư mục có chứa file hoặc thư mục con, bạn cần sử dụng shutil.rmtree("duong_dan") để xóa toàn bộ nội dung bên trong trước khi xóa thư mục.

Làm sao để thay đổi thư mục làm việc trong Python?

Bạn có thể dùng os.chdir("duong_dan_moi") để thay đổi thư mục làm việc. Lệnh này giúp chương trình chạy trong một thư mục khác thay vì thư mục mặc định ban đầu.

Làm sao để liệt kê tất cả file và thư mục trong một thư mục?

Bạn có thể dùng os.listdir("duong_dan") để lấy danh sách tất cả file và thư mục trong đường dẫn chỉ định.

Nếu thư mục đã tồn tại mà vẫn muốn tạo thư mục trong Python đó thì phải làm sao?

Bạn có thể sử dụng os.makedirs("duong_dan", exist_ok=True). Tham số exist_ok=True giúp tránh lỗi nếu thư mục đã tồn tại.

Có cách nào di chuyển hoặc đổi tên thư mục trong Python không?

Có, bạn có thể sử dụng shutil.move("duong_dan_cu", "duong_dan_moi") để di chuyển hoặc đổi tên thư mục.

Làm thế nào để lấy thông tin chi tiết về một thư mục trong Python?

Bạn có thể sử dụng os.stat("duong_dan") để lấy thông tin như kích thước, thời gian tạo, thời gian sửa đổi gần nhất của thư mục.

Có cần phân biệt thư mục và file trong Python không?

Có, để kiểm tra một đường dẫn là file hay thư mục, bạn có thể dùng:
- os.path.isdir("duong_dan"): Kiểm tra xem đó có phải là thư mục không.
- os.path.isfile("duong_dan"): Kiểm tra xem đó có phải là file không.

Lời kết

Qua bài viết này, bạn đã nắm được cách kiểm tra, tạo, liệt kê, thay đổi và xóa thư mục trong Python một cách đơn giản. Những thao tác này không chỉ giúp bạn làm việc với hệ thống tệp linh hoạt hơn mà còn hỗ trợ xây dựng các chương trình quản lý dữ liệu hiệu quả. Nếu bạn có bất cứ thắc mắc hay cần hỗ trợ gì, hãy để lại bình luận bên dưới, mình sẽ phản hồi nhanh nhất. Cảm ơn bạn đã đọc!

Mọi người cũng xem:

Cao Lê Viết Tiến

PHP Leader
tại
Vietnix

Kết nối với mình qua

Icon Quote
Icon Quote

Học lập trình online cùng vietnix

Học lập trình online cùng Vietnix

PHPXem thêmThu gọn