从文件路径中删除 ../ 或 ./

bac*_*ace 4 python directory-structure path

我有一个文件路径和一个目录路径。该文件应该位于该目录中的某个位置(多个级别)。我想将文件路径的开头与目录路径进行比较。所以我基本上做的是:

if file_path.startswith(directory_path):
    do_something()
Run Code Online (Sandbox Code Playgroud)

两条路径都是字符串。不幸的是,我的文件路径包括“..”和“.”。所以它看起来像这样:/home/user/documents/folder/../pictures/house.jpg。由于另一条路径不包含这些点,因此比较显然会失败。python 有没有办法从字符串中删除这些点?我想过使用 os 模块中的 path.join() ,但这不起作用。非常感谢您的帮助:)

Mas*_*inn 5

python 有没有办法从字符串中删除这些点?我想过使用 os 模块中的 path.join() ,但这不起作用。非常感谢您的帮助:)

os.path.abspath将使道路正常化并使其绝对化。或者,pathlib.Path.resolve()

  • [或者,如果不需要绝对化,`os.path.normpath`实际上正是问题想要的](https://docs.python.org/3/library/os.path.html#os.path.normpath ) (3认同)