2009-08-13 15 views
105

Programımın çıktı bilgilerini bir klasöre koymak istiyorum. Verilen klasör yoksa, program programda verilen klasör adı ile yeni bir klasör oluşturmalıdır. Mümkün mü? Cevabınız evet ise lütfen bana nasıl bildirin. "C:\Program Files\alex" ve alex klasör gibiYeni klasör nasıl oluşturulur?

varsayalım ben verdik klasör yolu programı alex klasör oluşturmak gerekir ve alex klasöründe çıktı bilgisinin koymalıyız sonra yok.

+7

Os modülüne baktığınızda ne buldunuz? Faydalı bir şey var mı? Hangi kodu denedin? Şey var mı? –

cevap

192

Sen os.makedirs()
ile bir klasör oluşturun ve zaten var olmadığını görmek için os.path.exists() kullanabilirsiniz:

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

Eğer bir yükleyici yapmaya çalışıyorsanız: Windows Installer sizin için bir sürü iş yapar. Gerekirse o, hem de ara dizinleri yaratacak şekilde

+8

Bu, başarısız olmayacaktır çünkü os.makedirs çağrısına iki kez ters eğik çizgi eklemediniz. –

+2

Beni öldürüyor: newpath = r'C: \ Program Files \ alex '; os.path.exists (newpath): os.makedirs (newpath) – hughdbrown

+0

genellikle konuşan yol adları büyük/küçük harf duyarlıdır. Pencerelerden başka bir şeyle uyumlu olmak istiyorsanız – SilentGhost

27

Os.mkdir'ı denediniz mi?

Ayrıca bu küçük kod parçacığını deneyebilirsiniz: Gerekirse

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

makedirs, dizinleri çoklu düzeyde oluşturur.

27

Muhtemelen os.makedirs istiyorum.

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) 
İlgili konular