2009-08-13 19 views
105

Voglio mettere le informazioni di uscita del mio programma in una cartella. se la cartella specificata non esiste, il programma dovrebbe creare una nuova cartella con il nome della cartella come indicato nel programma. È possibile? Se sì, per favore fammi sapere come.Come creare una nuova cartella?

Supponiamo che io ho dato il percorso della cartella come cartella "C:\Program Files\alex" e alex non esiste, il programma dovrebbe creare la cartella alex e dovrebbe mettere le informazioni in uscita nella cartella alex.

+7

Quando hai cercato nel modulo 'os', cosa hai trovato? Qualcosa di utile? Che codice hai provato? Nulla? –

risposta

192

È possibile creare una cartella con os.makedirs()
e utilizzare os.path.exists() per vedere se esiste già:

newpath = r'C:\Program Files\arbitrary' 
if not os.path.exists(newpath): 
    os.makedirs(newpath) 

Se stai cercando di fare un programma di installazione: Windows Installer fa un sacco di lavoro per voi.

+8

Questo fallirà perché non hai due backslashes nella chiamata a os.makedirs. –

+2

Mi sta uccidendo: newpath = r'C: \ Programmi \ alex '; in caso contrario os.path.exists (newpath): os.makedirs (newpath) – hughdbrown

+0

i nomi di percorso in generale sono case-sensitive. – SilentGhost

27

Hai provato os.mkdir?

Si potrebbe anche provare questo piccolo frammento di codice:

mypath = ... 
if not os.path.isdir(mypath): 
    os.makedirs(mypath) 

makedirs crea livelli multipli di directory, se necessario.

27

Probabilmente si desidera os.makedirs in quanto creerà anche le directory intermedie, se necessario.

import os 

#dir is not keyword 
def makemydir(whatever): 
    try: 
    os.makedirs(whatever) 
    except OSError: 
    pass 
    # let exception propagate if we just can't 
    # cd into the specified directory 
    os.chdir(whatever) 
Problemi correlati