Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Cách kiểm tra file hoặc thư mục có tồn tại trong Python
Khi bạn muốn mở một file, nếu file hoặc thư mục được chỉ định trong đường dẫn không tồn tại, Python sẽ gây ra một ngoại lệ. Việc xử lý tình huống này là rất quan trọng để tránh chương trình bị lỗi đột ngột. Bài viết này giới thiệu các cách kiểm tra xem một file hoặc thư mục có tồn tại trong Python, cũng như cách mở file an toàn.
Sử dụng khối try-except trong Python
Thay vì kiểm tra xem file có tồn tại hay không trước khi mở, bạn có thể trực tiếp mở file và bao bọc mã của mình trong một khối try-except
. Chiến lược này được gọi là EAFP (Easier to Ask for Forgiveness than Permission), một phong cách lập trình phổ biến trong Python.
try: f = open("filename.txt") except FileNotFoundError: # file không tồn tại print("file không tồn tại.") else: # filetồn tại print("file đã được mở thành công.")
Lưu ý: Trong Python 2, ngoại lệ này là
IOError
thay vìFileNotFoundError
.
Sử dụng os.path.isfile()
, os.path.isdir()
, hoặc os.path.exists()
trong Python
Nếu bạn không muốn gây ra ngoại lệ hoặc chỉ cần kiểm tra sự tồn tại mà không cần mở file, thư viện os.path
cung cấp một số phương thức hữu ích:
Bài viết này được đăng tại [free tuts .net]
os.path.isfile(path)
: Trả vềTrue
nếu đường dẫn là một filehợp lệ.os.path.isdir(path)
: Trả vềTrue
nếu đường dẫn là một thư mục hợp lệ.os.path.exists(path)
: Trả vềTrue
nếu đường dẫn là file hoặc thư mục hợp lệ.
Ví dụ:
import os if os.path.isfile("filename.txt"): print("file tồn tại.") f = open("filename.txt") if os.path.isdir("data"): print("Thư mục tồn tại.") if os.path.exists("file_path"): print("file hoặc thư mục tồn tại.")
Sử dụng Path.is_file()
từ thư viện pathlib
trong Python
Từ Python 3.4, bạn có thể sử dụng thư viện pathlib
để xử lý đường dẫn theo hướng đối tượng. Đây là cách tiếp cận hiện đại và ngày càng được ưa chuộng.
Tạo đối tượng Path:
from pathlib import Path my_file = Path("/path/to/file")
Kiểm tra với các phương thức is_file()
, is_dir()
, và exists()
:
if my_file.is_file(): print("file tồn tại.") if my_file.is_dir(): print("Thư mục tồn tại.") if my_file.exists(): print("file hoặc thư mục tồn tại.")
Kết bài
Dù bạn chọn phương pháp nào, việc kiểm tra file hoặc thư mục trước khi thao tác là bước quan trọng để đảm bảo chương trình của bạn hoạt động ổn định và an toàn. pathlib
là lựa chọn hiện đại, dễ đọc và mạnh mẽ, trong khi các phương thức của os.path
vẫn hữu ích đối với các phiên bản Python cũ hơn.