1. Xử lý thư mục trong Python

Nếu có một số lượng lớn các tệp tin cần xử lý trong chương trình Python, chúng ta có thể sắp xếp chúng vào trong các thư mục khác nhau để việc quản lý File diễn ra dễ dàng và đơn giản hơn.

Trong Python, cung cấp cho chúng ta mô-đun os – đây là mô-đun cấp cho chúng ta nhiều phương thức và các hàm có sẵn hữu ích để làm việc với các thư mục (và cả tệp tin). Để có thể sử dụng được các hàm này, ta cần nhập thư viện os vào trong chương trình như sau:

import os

Sau khi nhập thư viện os vào chương trình, ta có thể sử dụng các hàm/phương thức để thao tác với cả File và thao tác với cả thư mục (Folder).

2. Lấy đường dẫn của thư mục hiện tại trong Python

Chúng ta có thể lấy thư mục làm việc hiện tại bằng cách sử dụng hàm os.getcwd() trong chương trình Python. Hàm os.getcwd() này trả về đường dẫn thư mục làm việc hiện tại dưới dạng một chuỗi. Ngoài ra, chúng ta cũng có thể sử dụng hàm os.getcwdb() để lấy đường dẫn cua thư mục dưới dạng đối tượng byte.

Ví dụ dưới đây, tôi sẽ lấy ra đường dẫn của thư mục hiện tại có chứa File python đang được thực thi bằng cách sử dụng hàm os.getcwdb() như sau:

# D:\laptrinhtudau\python\main.py
import os 

# Lay ra duong dan thu muc hien tai bang ham getcwd()
duongdan = os.getcwd()

print("File Python dang o thu muc")
print(duongdan)

Kết quả:

File Python dang o thu muc
D:\laptrinhtudau\python

3. Thay đổi thư mục hiện tại trong Python

Chúng ta có thể thay đổi thư mục làm việc hiện tại bằng cách sử dụng hàm os.chdir(). Đường dẫn mới mà chúng ta muốn thay đổi thành phải được cung cấp dưới dạng một chuỗi và truyền vào hàm này.

Ví dụ đơn giản, sử dụng hàm os.chdir() để thay đổi thư mục làm việc hiện tại từ “D:\laptrinhtudau\python” sang thư mục “D:\laptrinhtudau\python_example” như sau:

# D:\laptrinhtudau\python\main.py
import os 

# Lay ra duong dan thu muc hien tai bang ham getcwd()
duongdan = os.getcwd()
print("Thu muc hien tai la")
print(duongdan)

# Thay doi thu muc hien tai bang thu muc "D:\laptrinhtudau/python_example"
os.chdir('D:\laptrinhtudau/python_example')

# Lay ra duong dan moi sau khi thay doi
duongdanmoi = os.getcwd()
print("Thu muc sau khi thay doi la")
print(duongdanmoi)

Kết quả:

Thu muc hien tai la
D:\laptrinhtudau\python
Thu muc sau khi thay doi la
D:\laptrinhtudau\python_example

4. Liệt kê các tập tin và thư mục trong Python

Tất cả các tệp tin và thư mục con bên trong một thư mục cha có thể được truy xuất bằng cách sử dụng hàm os.listdir() để thực hiện việc này. Hàm này nhận một đường dẫn và trả về danh sách các thư mục con và tệp trong đường dẫn đó. Nếu không có đường dẫn nào được chỉ định, nó sẽ trả về danh sách các thư mục con và tệp từ thư mục làm việc hiện tại.

Ví dụ dưới đây, liệt kê ra các tệp tin và thư mục con có trong thư mục cha là “D:\laptrinhtudau\python_example” bằng cách sử dụng hàm os.listdir() như sau:

# D:\laptrinhtudau\python\main.py
import os 

# Liet ke cac file va thuc muc co trong "D:\laptrinhtudau\python_example"
danhsach = os.listdir("D:\laptrinhtudau\python_example")

# Hien thi danh sach cac file va thu muc theo List
print(danhsach)

Kết quả:

[‘ex1.py’, ‘ex2.py’, ‘ex3.py’, ‘ex4.py’, ‘ex5.py’, ‘example_advanced’, ‘example_basic’]

Các File và thư mục con tương ứng tại “D:\laptrinhtudau\python_example” như bên dưới:

Nếu như hàm os.listdir() không truyền bất kỳ đường dẫn nào vào hàm, khi đó hàm này sẽ trả về danh sách các tệp tin và thư mục có trong thư mục làm việc hiện tại:

# D:\laptrinhtudau\python\main.py
import os 

# Liet ke cac file va thuc muc trong thu muc dang lam viec
danhsach = os.listdir()

# Hien thi danh sach cac file va thu muc theo List
print(danhsach)

Kết quả:

[‘main.py’, ‘__pycache__’]

Các File và thư mục con tương ứng tại thư mục đang làm việc với file Python như bên dưới:

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

Chúng ta có thể tạo một thư mục mới bằng hàm os.mkdir(). Hàm này nhận vào đường dẫn của thư mục mới. Nếu như đường dẫn thư mục mới không được chỉ định vào trong hàm thì việc tạo thư mục mới sẽ được đặt vào trong thư mục làm việc hiện tại.

Ví dụ tạo một thư mục có tên “example_oop” và đặt thư mục này vào trong thư mục cha “D:\laptrinhtudau\python_example” bằng cách sử dụng hàm os.mkdir() như sau:

# D:\laptrinhtudau\python\main.py
import os 

# Lay ra danh sach ten tep tin va thu muc ban dau trong "D:\laptrinhtudau\python_example"
print("Thu muc ban dau")
print(os.listdir("D:\laptrinhtudau\python_example"))

# Khai bao duong dan thu muc can tao
duongdan = "D:\laptrinhtudau\python_example\example_oop"

# Tao thu muc theo duong dan bang ham mkdir()
os.mkdir(duongdan)

# Lay ra danh sach cac tep tin va thu muc co trong "D:\laptrinhtudau\python_example"
print("Thu muc sau khi tao thu muc moi")
print(os.listdir("D:\laptrinhtudau\python_example"))

Kết quả:

Thu muc ban dau
[‘ex1.py’, ‘ex2.py’, ‘ex3.py’, ‘ex4.py’, ‘ex5.py’, ‘example_advanced’, ‘example_basic’]
Thu muc sau khi tao thu muc moi
[‘ex1.py’, ‘ex2.py’, ‘ex3.py’, ‘ex4.py’, ‘ex5.py’, ‘example_advanced’, ‘example_basic’, ‘example_oop’]

Sau khi tạo thư mục “example_oop” và đặt thư mục này trong thư mục cha “D:\laptrinhtudau\python_example” ta sẽ thấy nó xuất hiện như bên dưới:

Nếu như hàm os.mkdir() không truyền bất kỳ đường dẫn nào vào hàm, khi đó hàm này sẽ tạo ra một thư mục mới và đặt vào trong thư mục làm việc hiện tại:

# D:\laptrinhtudau\python\main.py
import os 

# Lay ra danh sach ten tep tin va thu muc ban dau dang lam viec
print("Thu muc ban dau")
print(os.listdir())

# Tao thu muc co ten "debug" trong thu muc dang lam viec 
os.mkdir("debug")

# Lay ra danh sach ten tep tin va thu muc dang lam viec
print("Thu muc sau khi tao thu muc moi")
print(os.listdir())

Kết quả:

Thu muc ban dau
[‘main.py’, ‘__pycache__’]
Thu muc sau khi tao thu muc moi
[‘debug’, ‘main.py’, ‘__pycache__’]

Sau khi tạo thư mục “debug” và đặt thư mục này trong thư mục đang làm việc, khi đó ta sẽ thấy một thư mục mới được tạo ra cùng với File Python đang thực thi:

6. Đổi tên thư mục trong Python

Để đổi tên bất kỳ thư mục hoặc tệp nào, chúng ta có thể sử dụng hàm os.rename() hàm này nhận hai đối số cơ bản: tên cũ của thư mụctên mới cần đổi cho thư mục.

Ví dụ dưới đây, sử dụng hàm os.rename() để đổi tên thư mục “python” tại đường dẫn “D:\laptrinhtudau\python” thành tên mới “python_tutorial” như sau:

# D:\laptrinhtudau\python\main.py
import os 

# Lay ra thu muc ban dau co ten "python"
print("Thu muc ban dau")
print(os.listdir("D:\laptrinhtudau"))

# Doi ten "python" thanh "python_tutorial"
os.rename("D:\laptrinhtudau\python","D:\laptrinhtudau\python_tutorial")

# Lay ra thu muc sau khi doi ten "python_tutorial"
print("Thu muc sau khi doi ten")
print(os.listdir("D:\laptrinhtudau"))

Kết quả:

Thu muc ban dau
[‘python’, ‘python_example’]
Thu muc sau khi doi ten
[‘python_example’, ‘python_tutorial’]

Sau khi thực hiện chương trình trên, ta có thể truy cập vào đường dẫn thư mục cha “D:\laptrinhtudau\” – thư mục này chứa thư mục “python_tutorial” vừa được đổi tên:

Khi sử dụng hàm os.rename() nhưng và chỉ truyền vào tên cũ của thư mục và tên mới cần đổi cho thư mục mà không truyền vào đường dẫn của thư mục khi đó các thư mục trong thư mục hiện tại đang làm việc sẽ được thay đổi tên.

# D:\laptrinhtudau\python\main.py
import os 

# Lay ra ten cac thu muc ban dau
print("Thu muc ban dau")
print(os.listdir("D:\laptrinhtudau\python"))

# Doi ten "debug" thanh "config" trong thu muc 
os.rename("debug","config")

# Lay ra ten cac thu muc sau khi doi ten
print("Thu muc sau khi doi ten")
print(os.listdir("D:\laptrinhtudau\python"))

Kết quả:

Thu muc ban dau
[‘debug’, ‘main.py’, ‘__pycache__’]
Thu muc sau khi doi ten
[‘config’, ‘main.py’, ‘__pycache__’]

Chạy chương trình trên thành công, chúng ta sẽ truy cập vào đường dẫn hiện tại mà ta đang làm việc “D:\laptrinhtudau\python” sẽ thấy sự thay đổi như sau:

7. Xóa thư mục tồn tại trong Python

Khi thao tác với ngôn ngữ lập trình Python, để xóa đi một thư mục bằng Python ta cần sử dụng hàm os.rmdir() để thực hiện việc này.
Ví dụ đơn giản dưới đây, sử dụng hàm os.rmdir() để xóa đi thư mục có tên là “python_example” tại đường dẫn “D:\laptrinhtudau\python_example” như sau:

# D:\laptrinhtudau\python\main.py
import os 

# Lay ra ten cac thu muc ban dau
print("Thu muc ban dau")
print(os.listdir("D:\laptrinhtudau"))

# Xoa thu muc "python_example" bang ham rmdir()
os.rmdir("D:\laptrinhtudau\python_example")

# Lay ra ten cac thu muc sau khi xoa thu muc "python_example"
print("Thu muc sau khi xoa")
print(os.listdir("D:\laptrinhtudau"))
Thu muc ban dau
[‘python’, ‘python_example’]
Thu muc sau khi xoa
[‘python’]

Sau khi xóa thư mục “python_example” chúng ta có thể truy cập vào thư mục gốc “D:\laptrinhtudau” – thư mục cha của thư mục này để kiểm tra kết quả:

Chú ý: Khi xóa thư mục, bạn cũng xóa mọi nội dung bên trong thư mục đó. Vì vậy, để tránh xóa nhầm đi thư mục, bạn hãy sao lưu thư mục đó ra một ổ đĩa khác.