通过案例密集型模式找到正确的路径

时间:2018-05-02 07:28:33

标签: python python-3.x

我正在尝试将不正确的不区分大小写的路径转换为正确区分大小写的路径。

给定./cAsE/SeNsItIvE这样的路径如何找到这种形式的正确路径? ./CaSe/sEnSiTiVe

示例并不意味着暗示我正在寻找完全反转 - 即.\DIR\file如果./dir/file是系统中存在的./dir/file,则应解析为#build path database to resolve mispelled paths paths = [] def build_path_db(): global paths for filename in iglob('/mdt/**', recursive=True): abs_path = Path(filename).resolve() # get the absolute path rel_path = abs_path.relative_to('/mdt') # convert to relative path paths.append(rel_path) build_path_db() #takes string, returns string def unixify_path(win_path): pure_win_path = PureWindowsPath(win_path) #print(pure_win_path) posix_path = Path(pure_win_path) #check if path is valid if posix_path.exists(): print('already correct!') else: #print('incorrect!') posix_path_str = str(posix_path) #computer case insensitive regex pattern for hunted file pattern = compile(translate(posix_path_str), IGNORECASE) #check to see if case inensitive pattern matches actual paths for path in paths: if pattern.match(str(path)): #print('match found! %s ' % path) return path

显然,我一直在使用glob,并且无法找到处理此问题的规则。

我不会因为我的拙劣努力而厌烦任何人。

谢谢!

编辑:

我最终构建了一个包含所有有效路径的数据库,然后将输入的路径与不区分大小写的模式进行匹配。

有兴趣,如果有更好的方法:

JUnit

0 个答案:

没有答案