如何确定指定的文件是否放在指定的文件夹中?

时间:2011-01-30 15:48:34

标签: python

假设我有两条路径:第一条路径(可能是文件或文件夹路径):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上运行,但如果你向我提出一些跨平台的技巧,那就太棒了。

2 个答案:

答案 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)