在Python中从相对路径找到绝对路径

3 投票
2 回答
1161 浏览
提问于 2025-04-17 05:04

我的问题基本上就是标题所说的。我在研究中尝试了一些方法,比如这样:

import os
pathname = os.path.abspath("some/relative/directory")
print pathname

问题在于,每当我这样做时,它总是返回我给它的相对目录,并在前面加上我的Python目录。例如:

C:\Python27\some\relative\directory

而这个目录在我的电脑上根本不存在。我明白Python解释器默认会在工作目录中搜索,但我想要的是让它在我的整个电脑上搜索,找到包含我指定的部分目录的绝对路径。

这样做的目的是为了让我创建一个exe文件(使用py2exe),可以在任何电脑上搜索任意目录。请问在标准库中或者通过某个可用的模块,有没有方法可以做到这一点?还是说我必须自己实现这个算法?

2 个回答

0

你试过用 os.path.realpath("my/relative/dir") 吗?其实这个目录可能不存在,不过如果存在的话,它会帮你处理一些符号链接之类的东西。

4

abspath 是基于 getcwd 这个功能的。很可能,你现在的工作目录并不是你想象中的那个。

你可以修改启动你脚本的代码,手动切换目录,或者直接在Python中使用 chdir 来改变目录。

撰写回答