Tôi đang kiểm tra xem thư mục có tồn tại hay không, nhưng tôi nhận thấy rằng tôi đang sử dụng os.path.exists
thay vì os.path.isdir
. Cả hai đều hoạt động tốt, nhưng tôi tò mò không biết lợi ích của việc sử dụng isdir
thay vì là gì exists
.
Tôi đang kiểm tra xem thư mục có tồn tại hay không, nhưng tôi nhận thấy rằng tôi đang sử dụng os.path.exists
thay vì os.path.isdir
. Cả hai đều hoạt động tốt, nhưng tôi tò mò không biết lợi ích của việc sử dụng isdir
thay vì là gì exists
.
Câu trả lời:
os.path.exists
cũng sẽ trả về True
nếu có một tệp thông thường có tên đó.
os.path.isdir
sẽ chỉ trả về True
nếu đường dẫn đó tồn tại và là một thư mục hoặc một liên kết tượng trưng đến một thư mục.
os.path.isdir('.ipynb_checkpoints')
trở lại sự thật
Giống như âm thanh của nó: nếu đường dẫn tồn tại, nhưng là tệp chứ không phải thư mục, isdir
sẽ trả về False
. Trong khi đó, exists
sẽ trở lại True
trong cả hai trường hợp.
os.path.isdir () kiểm tra xem đường dẫn có tồn tại và là một thư mục hay không và trả về TRUE cho trường hợp này.
Tương tự, os.path.isfile () kiểm tra xem đường dẫn có tồn tại và là một tệp hay không và trả về TRUE cho trường hợp này.
Và, os.path.exists () kiểm tra xem đường dẫn có tồn tại hay không và không quan tâm xem đường dẫn có trỏ đến tệp hay thư mục hay không và trả về TRUE trong một trong hai trường hợp.
Hầu hết thời gian, nó đều giống nhau.
Tuy nhiên, đường dẫn có thể tồn tại vật lý trong khi path.exists()
trả về Sai. Đây là trường hợp nếu os.stat () trả về False cho tệp này.
Nếu đường dẫn tồn tại về mặt vật lý, thì path.isdir()
sẽ luôn trả về True. Điều này không phụ thuộc vào nền tảng.
isdir()
không thể biết liệu thư mục có tồn tại hay không.
os.path.exists (đường dẫn) Trả về giá trị True nếu đường dẫn tham chiếu đến một đường dẫn hiện có. Đường dẫn hiện có có thể là các tệp thông thường ( http://en.wikipedia.org/wiki/Unix_file_types#Regular_file ), nhưng cũng có thể là các tệp đặc biệt (ví dụ: thư mục). Vì vậy, về bản chất, hàm này trả về true nếu đường dẫn được cung cấp tồn tại trong hệ thống tệp dưới bất kỳ hình thức nào (mặc dù có một số ngoại lệ như liên kết tượng trưng bị hỏng).
os.path.isdir (đường dẫn) sẽ chỉ trả về true khi đường dẫn trỏ đến một thư mục
os.path.isdir
đang trả về true cho tôi trên một liên kết tượng trưng.