2013-04-16 3 views
8

मैं के रूप में mkdir आदेश चलाना चाहते हैं:पायथन में os.mkdir() के साथ -p विकल्प कैसे चलाएं?

mkdir -p directory_name 

क्या करना है विधि है कि अजगर में?

os.mkdir(directory_name [, -p]) didn't work for me. 
+4

कोशिश os.makedirs ('/ एकाधिक/path /') – rajpy

+1

डुप्लिकेट: http://stackoverflow.com/questions/600268/mkdir-p-functionality-in-python?rq=1 –

+0

की संभावित डुप्लिकेट [पायथन में mkdir -p कार्यक्षमता] (http://stackoverflow.com/questions/600268/mkdir-p- कार्यक्षमता-in-python) –

उत्तर

21

आप इस कोशिश कर सकते हैं:

# top of the file 
import os 
import errno 

# the actual code 
try: 
    os.makedirs(directory_name) 
except OSError as exc: 
    if exc.errno == errno.EEXIST and os.path.isdir(directory_name): 
     pass 
+1

exc में इरनो विशेषता नहीं है। – pynovice

+0

आपको कोड 'आयात त्रुटि' –

+1

कोड के शीर्ष पर जोड़ना चाहिए जो os.mkdirs (समाप्ति एस महत्वपूर्ण है) होना चाहिए, लेकिन SO मुझे इतना छोटा संपादन सबमिट करने नहीं देगा। –

12

कुछ इस तरह:

if not os.path.exists(directory_name): 
    os.makedirs(directory_name) 

युपीडी: के रूप में यह एक टिप्पणी में कहा जाता है कि आप धागा सुरक्षा

के लिए अपवाद के लिए जांच करने की आवश्यकता
try: 
    os.makedirs(directory_name) 
except OSError as err: 
    if err.errno!=17: 
     raise 
+2

यह एक अंतर्निहित दौड़ स्थिति 7 है और इसलिए एक * बहुत * बुरा विचार है। – Voo

+2

यह दौड़ की स्थिति के लिए प्रवण है। हां, अगर कुछ अन्य प्रक्रिया/धागा 'if' के बाद' directory_name' बनाता है लेकिन 'os.mkdirs' से पहले, यह कोड अपवाद फेंक देगा –

0

इसके बारे में कैसे os.system('mkdir -p %s' % directory_name)

संबंधित मुद्दे