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

4

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

if file_path.startswith(directory_path):
    do_something()

这两个路径都是字符串。不幸的是,我路径中包含“..”和“.”。因此它看起来像这样:/home/user/documents/folder/../pictures/house.jpg。由于另一个路径不包含这些点,所以比较失败了。在python中是否有一种方法可以从字符串中删除这些点?我考虑使用os模块中的path.join(),但没有成功。 非常感谢任何帮助 :)


这个回答解决了你的问题吗?如何在Python中获取绝对文件路径 - AMC
在我看来,这个问题不应该被关闭。无论如何,尝试使用 os.path.normpath。例如 os.path.normpath('./test') = 'test')。(感谢 @Green-Cloak-Guy) - Nic Scozzaro
1个回答

5
在Python中,有没有一种方法可以从字符串中删除这些点?我考虑使用os模块中的path.join()来做这件事,但它没有起作用。非常感谢任何帮助 :)
os.path.abspath将规范化路径并使其绝对化。或者,使用pathlib.Path.resolve()。

3
如果不需要绝对路径,那么os.path.normpath恰好可以实现问题所需的功能。请参考链接:https://docs.python.org/3/library/os.path.html#os.path.normpath - Green Cloak Guy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接