Python: создание каталогов - PullRequest
9 голосов
/ 20 марта 2010

Я хочу создать каталог (с именем «загружен») в моей папке на рабочем столе; это не работает?:

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

Ответы [ 3 ]

15 голосов
/ 20 марта 2010

Вы не можете просто использовать ~ Вы должны использовать os.path.expanduser , чтобы заменить ~ на правильный путь.

10 голосов
/ 20 марта 2010

Используйте

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

Символ ~ является соглашением оболочки POSIX, которое представляет содержимое переменной среды HOME. Итак, когда вы печатаете в оболочке:

$ mkdir ~/Desktop/downloaded

это то же самое, что и

$ mkdir $HOME/Desktop/downloaded

Попробуйте изменить переменную среды HOME, чтобы проверить, что я говорю.

Поскольку это соглашение о оболочке, это то, что не обрабатывает ни ядро, ни 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 голосов
/ 20 марта 2010

другой способ, используйте 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...