【问题标题】:Would os.path.expanduser('~/') return no directory?os.path.expanduser('~/') 会不会返回目录?
【发布时间】:2017-10-07 05:51:22
【问题描述】:

How to get the home directory in Python?How to find the real user home directory using python? 可以找到用户的主目录:

import os
os.path.expanduser('~/')

但是会不会有可能os.path.expanduser() 找不到任何东西并返回~/

我问这个问题是因为,从nltkhttps://github.com/nltk/nltk/blob/develop/nltk/downloader.py#L951 有这条线

homedir = os.path.expanduser('~/')
if homedir == '~/':
    raise ValueError("Could not find a default download directory")

注意:问题不是询问如何找到用户主目录,而是询问检查os.path.expanduser 的值并引发错误是否有任何意义。

【问题讨论】:

标签: python path operating-system home-directory expanduser


【解决方案1】:

在官方文档中。

在 Unix 上,初始 ~ 被环境变量 HOME 替换,如果 它已设置;否则查找当前用户的主目录 密码目录通过内置模块 pwd。一个初始 ~user 直接在密码目录中查找。

...

如果 扩展失败,或者如果路径不是以波浪号开头,则路径 原样返回。

所以正如文档所说,如果操作失败,它将返回原始字符串。而且,关键是,返回 unchanged 路径但不是 不断~/

【讨论】:

    猜你喜欢
    • 2014-09-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多