Directories (thư mục) là một cấu trúc dữ liệu quan trọng trong hệ thống tệp tin của máy tính, giúp tổ chức và quản lý các tệp tin một cách hiệu quả. Trong Python, việc xử lý và quản lý thư mục được thực hiện thông qua các module như os
, os.path
, shutil
, và pathlib
. Bài viết này sẽ hướng dẫn chi tiết cách làm việc với thư mục trong Python, bao gồm tạo, xóa, liệt kê, và thay đổi thư mục, kèm theo các ví dụ minh họa.
Tạo Thư Mục
Sử dụng os.mkdir()
Phương thức os.mkdir()
được sử dụng để tạo một thư mục mới. Nếu thư mục đã tồn tại, phương thức này sẽ gây ra lỗi FileExistsError
.
python
import os
# Tạo một thư mục mới tên là 'example_directory'
os.mkdir('example_directory')
Sử dụng os.makedirs()
Phương thức os.makedirs()
cho phép tạo nhiều thư mục lồng nhau. Nếu bất kỳ thư mục nào trong đường dẫn đã tồn tại, phương thức này sẽ gây ra lỗi FileExistsError
, trừ khi bạn sử dụng tham số exist_ok=True
.
python
import os
# Tạo các thư mục lồng nhau
os.makedirs('parent_directory/child_directory', exist_ok=True)
Sử dụng pathlib.Path.mkdir()
Module pathlib
cung cấp một cách tiếp cận hướng đối tượng để làm việc với đường dẫn tệp tin và thư mục. Phương thức Path.mkdir()
có thể được sử dụng để tạo thư mục.
python
from pathlib import Path
# Tạo một thư mục mới tên là 'example_directory'
p = Path('example_directory')
p.mkdir(exist_ok=True)
Xóa Thư Mục
Sử dụng os.rmdir()
Phương thức os.rmdir()
được sử dụng để xóa một thư mục rỗng. Nếu thư mục không rỗng, phương thức này sẽ gây ra lỗi OSError
.
python
import os
# Xóa thư mục rỗng tên là 'example_directory'
os.rmdir('example_directory')
Sử dụng shutil.rmtree()
Phương thức shutil.rmtree()
được sử dụng để xóa một thư mục và tất cả các tệp tin và thư mục con bên trong nó.
python
import shutil
# Xóa thư mục và tất cả các tệp tin và thư mục con bên trong nó
shutil.rmtree('parent_directory')
Liệt Kê Thư Mục và Tệp Tin
Sử dụng os.listdir()
Phương thức os.listdir()
trả về một danh sách các tên tệp tin và thư mục trong một thư mục cụ thể.
python
import os
# Liệt kê tất cả các tệp tin và thư mục trong thư mục hiện tại
print(os.listdir('.'))
Sử dụng os.scandir()
Phương thức os.scandir()
trả về một iterator của các đối tượng os.DirEntry
, cung cấp thông tin chi tiết hơn về các tệp tin và thư mục.
python
import os
# Liệt kê tất cả các tệp tin và thư mục trong thư mục hiện tại
with os.scandir('.') as entries:
for entry in entries:
print(entry.name)
Sử dụng os.walk()
Phương thức os.walk()
được sử dụng để duyệt qua cây thư mục, trả về một generator tạo ra các tuple chứa đường dẫn thư mục, danh sách các thư mục con, và danh sách các tệp tin.
python
import os
# Duyệt qua cây thư mục
for dirpath, dirnames, filenames in os.walk('.'):
print(f'Found directory: {dirpath}')
for file_name in filenames:
print(file_name)
Sử dụng glob.glob()
Module glob
cho phép tìm kiếm các tệp tin và thư mục theo mẫu (pattern).
python
import glob
# Tìm tất cả các tệp tin .txt trong thư mục hiện tại
print(glob.glob('*.txt'))
Sử dụng pathlib.Path.iterdir()
Phương thức Path.iterdir()
trả về một iterator của các đối tượng Path
trong một thư mục.
python
from pathlib import Path
# Liệt kê tất cả các tệp tin và thư mục trong thư mục hiện tại
p = Path('.')
for entry in p.iterdir():
print(entry.name)
Thay Đổi Thư Mục Hiện Tại
Sử dụng os.getcwd()
Phương thức os.getcwd()
trả về đường dẫn của thư mục làm việc hiện tại.
python
import os
# Lấy đường dẫn của thư mục làm việc hiện tại
print(os.getcwd())
Sử dụng os.chdir()
Phương thức os.chdir()
thay đổi thư mục làm việc hiện tại thành thư mục được chỉ định.
python
import os
# Thay đổi thư mục làm việc hiện tại
os.chdir('/path/to/new_directory')
print(os.getcwd())
Kiểm Tra Sự Tồn Tại của Thư Mục
Sử dụng os.path.exists()
Phương thức os.path.exists()
kiểm tra xem một đường dẫn có tồn tại hay không.
python
import os
# Kiểm tra xem thư mục có tồn tại hay không
print(os.path.exists('example_directory'))
Sử dụng os.path.isdir()
Phương thức os.path.isdir()
kiểm tra xem một đường dẫn có phải là thư mục hay không.
python
import os
# Kiểm tra xem đường dẫn có phải là thư mục hay không
print(os.path.isdir('example_directory'))
Di Chuyển và Đổi Tên Thư Mục
Sử dụng os.rename()
Phương thức os.rename()
được sử dụng để đổi tên hoặc di chuyển một thư mục.
python
import os
# Đổi tên thư mục
os.rename('old_directory', 'new_directory')
Sử dụng shutil.move()
Phương thức shutil.move()
được sử dụng để di chuyển một thư mục đến một vị trí mới.
python
import shutil
# Di chuyển thư mục
shutil.move('source_directory', 'destination_directory')
Kết Luận
Việc quản lý và thao tác với thư mục là một kỹ năng quan trọng trong lập trình Python, đặc biệt khi làm việc với các dự án lớn và phức tạp. Python cung cấp nhiều công cụ và phương thức mạnh mẽ để làm việc với thư mục, bao gồm các module os
, shutil
, và pathlib
. Hiểu và sử dụng thành thạo các công cụ này sẽ giúp bạn quản lý tệp tin và thư mục một cách hiệu quả và dễ dàng hơn. Hy vọng bài viết này đã cung cấp cho bạn một cái nhìn tổng quan và chi tiết về cách làm việc với thư mục trong Python.