Khi làm việc với tệp dữ liệu trong các ngôn ngữ lập trình như Python, việc xác định đúng đường dẫn là rất quan trọng để chương trình có thể truy cập và xử lý các tệp dữ liệu đó. Có hai loại đường dẫn chính:
1. Đường dẫn tuyệt đối
Đường dẫn tuyệt đối (absolute path) là đường dẫn đầy đủ từ thư mục gốc của hệ thống đến vị trí của tệp tin.
Ví dụ:
C:\Users\John\Documents\project\data\diem.txt (Windows) /home/lan/project/data/diem.txt (Linux/Mac)
Đường dẫn tuyệt đối giúp xác định rõ ràng vị trí của tệp, tuy nhiên nó không linh hoạt khi chuyển dự án sang hệ thống khác có cấu trúc thư mục khác.
2. Đường dẫn tương đối
Đường dẫn tương đối (relative path) được tính từ vị trí thư mục hiện tại nơi file mã nguồn đang chạy. Đây là cách linh hoạt hơn khi làm việc nhóm hoặc khi cần di chuyển dự án.
Ví dụ:
data/diem.txt
Python sẽ hiểu là đang tìm tệp diem.txt nằm trong thư mục con data cùng cấp với file .py.
import os
print(os.getcwd())
3. Sơ đồ minh họa cấu trúc thư mục
Dưới đây là cấu trúc dự án minh họa cho đường dẫn tương đối:
project/ │ ├── main.py ├── data/ │ └── diem.txt
Trong ví dụ này, file main.py có thể đọc file diem.txt bằng cách dùng đường dẫn:
with open("data/diem.txt", "r") as f:
4. Kết luận
Bảng so sánh nhanh giữa hai loại đường dẫn:
| Tiêu chí | Đường dẫn tuyệt đối | Đường dẫn tương đối |
|---|---|---|
| Vị trí | Toàn bộ hệ thống (bắt đầu từ gốc) | Tính từ thư mục đang chạy chương trình |
| Ví dụ | C:/Users/John/Desktop/project/data/diem.txt | data/diem.txt |
| Tính linh hoạt | Thấp – khó di chuyển dự án | Cao – dễ chia sẻ và tái sử dụng |
| Phụ thuộc vào vị trí file .py | Không | Có |
| Ứng dụng phù hợp | Chạy trên máy cố định, cấu trúc ổn định | Dự án nhóm, dễ di chuyển, đóng gói |
- Đường dẫn tuyệt đối: Rõ ràng nhưng kém linh hoạt.
- Đường dẫn tương đối: Linh hoạt, dễ di chuyển, phù hợp khi đóng gói dự án.
Vì vậy, khi phát triển phần mềm hoặc bài tập lập trình, bạn nên ưu tiên sử dụng đường dẫn tương đối và giữ mọi tệp dữ liệu trong cùng thư mục dự án để tránh lỗi và dễ bảo trì.