Sử dụng nguồn Luke:
def basename(p):
"""Returns the final component of a pathname"""
i = p.rfind('/') + 1
return p[i:]
chỉnh sửa (đáp lại rõ):
Nó hoạt động cho các URL một cách tình cờ, đúng vậy. Do đó, việc khai thác hành vi của nó có thể được coi là mã do một số người sử dụng.
Đang cố gắng để "sửa chữa" nó (kiểm tra xem đường truyền không phải là url) cũng bất ngờ khó
www.google.com/test.php
[email protected]/12
./src/bin/doc/goto.c
đang ở cùng thời điểm đó tên đường dẫn chính xác và URL (tương đối), như vậy là http:/hello.txt
(một/, và chỉ trên Linux, và nó kinda stupid :)). Bạn có thể "sửa" nó cho các url tuyệt đối nhưng những cái tương đối sẽ vẫn hoạt động. Xử lý một trường hợp đặc biệt khác nhau là một không lớn trong thế giới python.
Nói tóm lại: nhập khẩu này
Nguồn
2009-07-11 00:20:40
Làm rõ: Tôi không hỏi về/tại sao/nó hoạt động (mà mã nguồn rõ ràng là cách để đi); thay vì tôi hỏi tại sao nó hoạt động (theo chính sách - đặc biệt là trên Windows '\' là dấu phân cách đường dẫn) –
Microsoft OSes chấp nhận '/' forward slash như một dấu tách đường dẫn 'Dos 2', mặc dù từ' Dos 3' sử dụng '/' đã bị vô hiệu hóa bởi lệnh shell (nó không còn nữa) bởi vì nó xung đột với ký hiệu cờ tùy chọn dòng lệnh. Do đó, việc triển khai thực hiện rất đơn giản là không nhận thức được tính hợp lệ của '/'. Python rõ ràng là. Ngoài ra, bạn không thể sử dụng dấu gạch chéo chuyển tiếp với tiền tố '" \\? \ "'. nguồn http://bytes.com/topic/python/answers/23123-when-did-windows-start-accepting-forward-slash-path-separator và http://msdn.microsoft.com/en-us/library /aa365247(VS.85).aspx#paths – n611x007