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


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

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

相关内容

  • 没有找到相关文章

最新更新