可以说我有这些路径:的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