Python - 任何将相对路径转换为绝对路径的方法?

Posted

技术标签:

【中文标题】Python - 任何将相对路径转换为绝对路径的方法?【英文标题】:Python - Any way to turn relative paths into absolute paths? 【发布时间】:2012-03-11 10:32:04 【问题描述】:
current_working_directory = os.getcwd()
relative_directory_of_interest = os.path.join(current_working_directory,"../code/framework/zwave/metadata/")

files = [f for f in os.listdir(relative_directory_of_interest) if os.path.isfile(os.path.join(relative_directory_of_interest,f))]

for f in files:
    print(os.path.join(relative_directory_of_interest,f))

输出:

/Users/2Gig/Development/feature_dev/scripts/../code/framework/zwave/metadata/bar.xml
/Users/2Gig/Development/feature_dev/scripts/../code/framework/zwave/metadata/baz.xml
/Users/2Gig/Development/feature_dev/scripts/../code/framework/zwave/metadata/foo.xml

这些文件路径工作正常,但我的一部分希望看到这些是绝对路径(没有任何 ../ - 我不知道为什么我在乎,也许我是强迫症。我想我也发现它更容易记录以查看绝对路径。标准 python 库(我在 3.2 上)中是否有内置的东西可以将这些转换为绝对路径?如果没有的话,没什么大不了的,但是一点点谷歌搜索只会找到第三方解决方案。

编辑:看起来我想要什么 os.path.abspath(file)) 所以上面的修改后的源现在看起来像(不是我没有测试这个,它只是即兴发挥):

current_working_directory = os.getcwd()
relative_directory_of_interest = os.path.join(current_working_directory,"../code/framework/zwave/metadata/")

files = [f for f in os.listdir(relative_directory_of_interest) if os.path.isfile(os.path.join(relative_directory_of_interest,f))]

for f in files:
    print(os.path.abspath(f))

输出:

/Users/2Gig/Development/feature_dev/scripts/ZWave_custom_cmd_classes (08262010).xml /Users/2Gig/Development/feature_dev/scripts/ZWave_custom_cmd_classes (09262010).xml /Users/2Gig/Development/feature_dev/scripts/ZWave_custom_cmd_classes (09262011).xml

【问题讨论】:

How to get an absolute file path in Python的可能重复 【参考方案1】:

请注意,您的路径已经是绝对的——它们以/ 开头。但是,它们没有规范化,这可以通过os.path.normpath() 来完成。

【讨论】:

谢谢。我可能不清楚我在问什么,但阅读 normpath() 让我看到 abspath() 这显然是我真正想要的。再次感谢。

以上是关于Python - 任何将相对路径转换为绝对路径的方法?的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript 将相对路径转换为绝对路径

aspcms怎么将相对路径改成绝对路径

如何将相对路径转换为 ​​C#/.NET 中的完全限定路径?

带冒号的 Makefile 绝对路径

Gatsby JSON 中的绝对图像路径

-------------路径模块:os.path