我想在桌面目录中创建一个目录(名为“已下载”);这不起作用吗?:
import os
os.mkdir('~/Desktop/downloaded/')
答案 0 :(得分:15)
您不能简单地使用~
您必须使用os.path.expanduser将~
替换为正确的路径。
答案 1 :(得分:10)
使用
import os
os.mkdir(os.path.expanduser("~/Desktop/downloaded"))
~
字符是POSIX shell约定,表示HOME环境变量的内容。所以,当你输入一个shell时:
$ mkdir ~/Desktop/downloaded
与输入
相同$ mkdir $HOME/Desktop/downloaded
尝试更改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'
答案 2 :(得分:2)
另一种方式,使用os.environ
import os
home=os.environ["HOME"]
path=os.path.join(home,"Desktop","download")
try:
os.mkdir(path)
except IOError,e:
print e
else:
print "Successful"