gpt4 book ai didi

python - abspath() 以 __file__ 作为输入

转载 作者:太空宇宙 更新时间:2023-11-04 10:32:24 25 4
gpt4 key购买 nike

通过阅读 stackoverflow 我发现 __file__ 是从中加载模块的文件的路径名,如果它是从文件加载的话

这行代码有什么原因吗?

os.path.abspath(__file__)

文档指出

os.path.abspath(path)
Return a normalized absolutized version of the pathname path.

在这种情况下,abspath() 是否提供任何值?

最佳答案

我相信它会为那些希望知道他们的代码运行路径的人提供值(value),没有符号链接(symbolic link),pathname/../otherpath 怪异,或其他问题 abspath() 地址。另请参阅 os.path.normpath() 的文档.这两个可能是不同的。

有趣的是,这可能不同于 os.path.realpath() ,它返回“指定文件名的规范路径,消除路径中遇到的任何符号链接(symbolic link)(如果操作系统支持它们)。”

有趣的结果:在我的 OS X 系统上,我的 ~/Dropbox 层次结构(驻留在我的标准文件系统中)中有一个文件夹符号链接(symbolic link)到 ~/Library/Application Support 为 Sublime Text 提供插件文件。当我从 Sublime 运行测试程序时,我得到以下结果:

__file__           = /Users/MattDMo/Dropbox/Sublime/ST3_Mac/Packages/tk_test.py
abspath(__file__) = /Users/MattDMo/Dropbox/Sublime/ST3_Mac/Packages/tk_test.py
realpath(__file__) = /Users/MattDMo/Library/Application Support/Sublime Text 3/Packages/tk_test.py

但是,从终端运行(在 ~Library/Application Support/Sublime Text 3/Packages 内)给出:

__file__           = tk_test.py
abspath(__file__) = /Users/MattDMo/Library/Application Support/Sublime Text 3/Packages/tk_test.py
realpath(__file__) = /Users/MattDMo/Library/Application Support/Sublime Text 3/Packages/tk_test.py

将终端中的目录更改为 ~/Dropbox/Sublime/ST3_Mac/Packages 不会对结果产生任何影响。很有趣...

关于python - abspath() 以 __file__ 作为输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25677436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com