2010-03-19 9 views
6

Je souhaite créer un répertoire (nommé 'téléchargé') dans mon répertoire de bureau; est-ce pas de travail ?:Python: Création de répertoires

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

Si le répertoire de bureau est dans une langue ????? comment localiser sur Desktop dans n'importe quelle langue? – Ernie

+0

Pour le code qui fait l'équivalent de "mkdir -p" voir http://stackoverflow.com/q/600268/319741 –

Répondre

14

Vous ne pouvez pas simplement utiliser ~ Vous devez utiliser os.path.expanduser pour remplacer le ~ avec un bon chemin.

+1

Donc vous pouvez remplacer ce code par 'os.mkdir (os.expanduser ('~/Desktop/Downloaded/')) '. – LeafStorm

+3

@Leafstorm 'os.path.expanduser', pas' os.expanduser'. –

8

Utilisez

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

Le caractère ~ est une convention shell POSIX qui représente le contenu de la variable d'environnement HOME. Donc, lorsque vous tapez dans une coquille:

$ mkdir ~/Desktop/downloaded 

c'est la même chose que taper

$ mkdir $HOME/Desktop/downloaded 

Essayez de changer la variable d'environnement HOME pour vérifier ce que je dis. Comme c'est une convention shell, c'est quelque chose que ni le noyau traite spécialement, ni Python, et la fonction python os.mkdir est juste un wrapper autour de l'appel système du noyau mkdir(2). Par commodité, Python fournit la fonction os.path.expanduser pour remplacer le tilde par le contenu de la variable d'environnement HOME env.

$ HOME=/tmp 
$ 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' 
1

une autre façon, utilisez 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" 
Questions connexes