2010-03-19 13 views
6

Quiero crear un directorio (llamado 'descargado') en mi directorio de escritorio; No es este trabajo ?:Python: Crear directorios

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

Si el directorio de escritorio está en otro idioma ????? cómo ubicar en el escritorio en cualquier idioma? – Ernie

+0

Para obtener el código que hace el equivalente de "mkdir -p", consulte http://stackoverflow.com/q/600268/319741 –

Respuesta

14

No se puede simplemente utilizar ~ Debe utilizar os.path.expanduser para reemplazar el ~ con un camino adecuado.

+1

. De modo que podría reemplazar ese código con 'os.mkdir (os.expanduser ('~/Desktop/Downloaded)/')) '. – LeafStorm

+3

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

8

Uso

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

El carácter ~ es una convención shell POSIX que representa el contenido de la variable de entorno HOME. Por lo tanto, cuando se escribe en una concha:

$ mkdir ~/Desktop/downloaded 

Es lo mismo que escribir

$ mkdir $HOME/Desktop/downloaded 

trate de cambiar la variable de entorno HOME para verificar lo que digo.

Como es una convención de shell, es algo que ni el kernel trata especialmente, ni Python, y la función python os.mkdir es solo un envoltorio alrededor de la llamada al sistema kernel mkdir(2). Como conveniencia, Python proporciona la función os.path.expanduser para reemplazar la tilde con el contenido de la env de ENVIO.

$ 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

otra manera, utilizar 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" 
Cuestiones relacionadas