【发布时间】:2018-11-13 14:40:19
【问题描述】:
我的代码需要能够在目录列表中搜索特定文件。它需要将别名作为路径名的一部分来处理,并且仍然可以找到文件的实际路径。例如,它需要将$HOME/test.dat 之类的东西变成/home/greenmatt/test.dat。因此,我正在尝试使用os.path.abspath。
不幸的是,返回的结果是别名粘贴在实际目录名称的末尾。下面演示了我所看到的。
从命令行:
> echo $HOME
/home/greenmatt
然后在 Python 内部:
> python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print(os.path.abspath('$HOME'))
/home/greenmatt/$HOME
os.path.realpath 做同样的事情:
>>> print(os.path.realpath('$HOME'))
/home/greenmatt/$HOME
为什么额外的 '$HOME' 会被添加到路径中?没有它如何获得绝对路径?
【问题讨论】:
-
你需要
os.path.expandvars -
@MichaelButscher:如果你输入它作为答案,那就行了。我会接受的。
标签: python python-3.x path