os.makedirs 不识别路径中的 "~

232 投票
3 回答
76724 浏览
提问于 2025-04-15 17:58

我在路径中使用~时遇到了一点问题。

这个代码示例创建了一些名为~/some_dir的目录,但它没有理解我想在我的主目录下创建some_dir

my_dir = "~/some_dir"
if not os.path.exists(my_dir):
    os.makedirs(my_dir)

请注意,这是在一个基于Linux的系统上。

3 个回答

17

这可能是因为Python和Bash不一样,它们的规则也不同。你可以试试这个:

homedir = os.path.expanduser('~')
96

~/some_dir 转换成 $HOME/some_dir 这个过程叫做 波浪号扩展,这是一个常见的用户界面功能。其实,文件系统本身并不知道这个事情。

在Python中,这个功能是通过 os.path.expanduser 来实现的:

my_dir = os.path.expanduser("~/some_dir")
383

你需要手动展开波浪号:

my_dir = os.path.expanduser('~/some_dir')

撰写回答