Python:创建目录

11 投票
3 回答
25503 浏览
提问于 2025-04-15 20:37

我想在我的桌面目录下创建一个名为“downloaded”的文件夹;这样做不行吗?

import os
os.mkdir('~/Desktop/downloaded/')

3 个回答

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"
10

使用

import os
os.mkdir(os.path.expanduser("~/Desktop/downloaded"))

这个 ~ 符号是一个在POSIX shell中常用的表示方式,它代表了你的HOME环境变量的内容。所以,当你在命令行中输入:

$ mkdir ~/Desktop/downloaded

其实和输入

$ mkdir $HOME/Desktop/downloaded

是一样的。

你可以试着改变一下HOME环境变量,看看我说的对不对。

因为这是一个shell的约定,所以内核和Python都不会特别对待它。而Python的 os.mkdir 函数其实只是对内核的 mkdir(2) 系统调用的一个封装。为了方便,Python提供了 os.path.expanduser 函数,可以把波浪号替换成HOME环境变量的内容。

$ 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'
15

你不能直接使用 ~ 符号。你必须使用 os.path.expanduser 这个方法来把 ~ 替换成正确的路径。

撰写回答