假设我有两条路径:第一条路径(可能是文件或文件夹路径):file_path
,第二条路径(可能只是文件夹路径):folder_path
。我想确定与file_path
并置的对象是否位于与folder_path
并置的对象内。
我知道这样做:
import os
...
def is_inside(file_path, folder_path):
full_file_path = os.path.realpath(file_path)
full_folder_path = os.path.realpath(folder_path)
return full_folder_path.startswith(full_file_path)
但我担心这种方法存在一些缺陷。我认为必须有一个更漂亮的方法来做到这一点。
解决方案必须在Linux上运行,但如果你向我提出一些跨平台的技巧,那就太棒了。
答案 0 :(得分:1)
使用os.path.commonprefix
。以下是基于您的想法的示例。
import os.path as _osp
def is_inside(file_path, folder_path):
full_file_path = _osp.realpath(file_path)
full_folder_path = _osp.realpath(folder_path)
return _osp.commonprefix([full_file_path, full_folder_path]) == \
full_folder_path
答案 1 :(得分:0)
从文件路径解析文件名并执行
os.path.exists(full_folder_path + '/' + file_name)