Khóa học python

Directories trong Xử Lý File trong Python

0 phút đọc

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.

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.

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.

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.

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ó.

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ể.

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.

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.

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).

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.

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.

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.

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.

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.

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.

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.

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.

Avatar
Được viết bởi

TechMely Team

Gợi ý câu hỏi phỏng vấn

Gợi ý bài viết

Bình luận

Chưa có bình luận nào

Khoá học javascript từ cơ bản đến chuyên sâuYoutube Techmely