2009-08-13 19 views
105

Chcę umieścić informacje wyjściowe mojego programu do folderu. jeśli podany folder nie istnieje, program powinien utworzyć nowy folder o nazwie folderu podanej w programie. czy to możliwe? Jeśli tak, proszę dać mi znać.Jak utworzyć nowy folder?

Załóżmy, że podałem ścieżkę do folderu, taką jak "C:\Program Files\alex" i alex, folder nie istnieje, wówczas program powinien utworzyć folder alex i umieścić informacje wyjściowe w folderze alex.

+7

Kiedy zajrzałeś do modułu "os", co znalazłeś? Coś przydatnego? Jaki kod próbowałeś? Byle co? –

Odpowiedz

192

Można utworzyć folder z os.makedirs()
i używać os.path.exists() aby sprawdzić czy już istnieje:

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

Jeśli próbujesz dokonać instalator: Windows Installer robi dużo pracy dla Ciebie.

+8

To się nie powiedzie, ponieważ nie masz podwójnego ukośnika w wywołaniu os.makedirs. –

+2

To mnie zabija: newpath = r'C: \ Program Files \ alex '; jeśli nie os.path.exists (newpath): os.makedirs (newpath) – hughdbrown

+0

ogólnie rzecz biorąc nazwy ścieżek uwzględniają wielkość liter. – SilentGhost

27

Czy próbowałeś os.mkdir?

Można także spróbować ten mały fragment kodu:

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

makedirs tworzy wiele poziomów katalogów, w razie potrzeby.

27

Prawdopodobnie będziesz potrzebował os.makedirs, ponieważ w razie potrzeby utworzy pośrednie katalogi.

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) 
Powiązane problemy