Python:创建目录

Bom*_*omb 9 python

我想在我的桌面目录中创建一个目录(名为"已下载"); 这不起作用吗?:

import os
os.mkdir('~/Desktop/downloaded/')
Run Code Online (Sandbox Code Playgroud)

S.L*_*ott 15

您不能简单地使用~ 您必须使用os.path.expanduser来替换~正确的路径.

  • @Leafstorm`os.path.expanduser`,而不是`os.expanduser`. (3认同)

tzo*_*zot 10

使用

import os
os.mkdir(os.path.expanduser("~/Desktop/downloaded"))
Run Code Online (Sandbox Code Playgroud)

~字符是POSIX shell约定,表示HOME环境变量的内容.所以,当你输入一个shell时:

$ mkdir ~/Desktop/downloaded
Run Code Online (Sandbox Code Playgroud)

它和打字一样

$ mkdir $HOME/Desktop/downloaded
Run Code Online (Sandbox Code Playgroud)

尝试更改HOME环境变量以验证我说的内容.

因为它是一个shell约定,它既不是内核专门处理的东西,也不是Python,而python os.mkdir函数只是内核mkdir(2)系统调用的包装器.为方便起见,Python提供了os.path.expanduser使用HOME env var的内容替换代字号的功能.

$ HOME=/tmp  # it is already exported
$ python
Python 2.6.4 (r264:75706, Mar  2 2010, 00:28:19) 
[GCC 4.3.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.path.expanduser("~/dada")
'/tmp/dada'
Run Code Online (Sandbox Code Playgroud)