可以說我有這些路徑:的Python:如何檢查是否路徑的子路徑
/tmp/a
/tmp/abc
/tmp/abc/d/my_file.py
我怎麼能檢查是否/tmp/abc/d/my_file.py
是/tmp/abc
子路徑?我想:
file_path.startswith(dir_path)
但它返回True
爲/tmp/a
目錄,而my_file.py
是不是在裏面。
可以說我有這些路徑:的Python:如何檢查是否路徑的子路徑
/tmp/a
/tmp/abc
/tmp/abc/d/my_file.py
我怎麼能檢查是否/tmp/abc/d/my_file.py
是/tmp/abc
子路徑?我想:
file_path.startswith(dir_path)
但它返回True
爲/tmp/a
目錄,而my_file.py
是不是在裏面。
試試這個: file_path.startswith(os.path.abspath(dir_path)+os.sep)
你也可以檢查此: How to check whether a directory is a sub directory of another directory
這在Windows上不起作用,因爲它們在那裏使用反斜槓作爲目錄分隔符。 – Ghostkeeper
你說得對,我已經改變了使用os.sep來支持跨平臺的答案。 –
豈不'startswith(dir_path + '/')'的工作? –
不,因爲''dir_path''可能已經以''/''結尾。 – niekas