Với hai đường dẫn tôi phải so sánh nếu chúng trỏ đến cùng một tệp hay không. Trong Unix, điều này có thể được thực hiện với os.path.samefile
, nhưng khi tài liệu cho biết nó không có sẵn trong Windows. Cách tốt nhất để mô phỏng chức năng này là gì? Nó không cần mô phỏng trường hợp thông thường. Trong trường hợp của tôi, có các cách đơn giản sau:Làm thế nào để mô phỏng hành vi os.path.samefile trên Windows và Python 2.7?
- Đường dẫn không chứa liên kết tượng trưng.
- Tệp nằm trong cùng một đĩa cục bộ.
Bây giờ tôi sử dụng như sau:
def samefile(path1, path2)
return os.path.normcase(os.path.normpath(path1)) == \
os.path.normcase(os.path.normpath(path2))
là OK này?
'>>> os.path.normcase (os.path.normpath (r" c: \ users \ aayoubi \ desktop ")) 'c: \\ users \\ aayoubi \\ desktop'' i cann' t tìm thấy trường hợp điều này sẽ thất bại. – aayoubi
Tôi chỉ tìm thấy một ví dụ. 'c: \\ một \ hai' và 'c: \\ một \ hai \' có thể trỏ đến cùng một thư mục, nhưng phương pháp này sẽ nói chúng khác nhau. –
cả hai đầu ra đều giống nhau: '>>> os.path.normcase (os.path.normpath (r" c: \\ one \ two ")) 'c: \\ one \\ two'' '>>> os.path.normcase (os.path.normpath (r" c: \\ one \ two \\ ")) 'c: \\ one \\ two'' – aayoubi