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()
.