2009-08-13 22 views
105

मैं अपने प्रोग्राम की आउटपुट जानकारी को फ़ोल्डर में रखना चाहता हूं। यदि दिया गया फ़ोल्डर मौजूद नहीं है, तो प्रोग्राम को प्रोग्राम में दिए गए फ़ोल्डर नाम के साथ एक नया फ़ोल्डर बनाना चाहिए। क्या यह संभव है? यदि हां, तो कृपया मुझे बताएं कि कैसे। जैसे "C:\Program Files\alex" और alex फ़ोल्डरनया फ़ोल्डर कैसे बनाएं?

मान लीजिए मैं दे दिया है फ़ोल्डर पथ तो मौजूद नहीं है कार्यक्रम alex फ़ोल्डर बनाने चाहिए और alex फ़ोल्डर में उत्पादन जानकारी रखना चाहिए।

+7

जब आपने 'ओएस' मॉड्यूल में देखा, तो आपको क्या मिला? कुछ भी उपयोगी है? आपने किस कोड का प्रयास किया? कुछ भी? –

उत्तर

192

आप os.makedirs()
साथ एक फ़ोल्डर बनाने और os.path.exists() का उपयोग करता है, तो वह पहले से मौजूद को देखने के लिए कर सकते हैं:

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

आप एक इंस्टॉलर बनाने की कोशिश कर रहे हैं: Windows Installer आप के लिए बहुत काम करता है।

+8

यह असफल हो जाएगा क्योंकि आपने os.makedirs को कॉल में डबल बैकस्लैश नहीं किया है। –

+2

यह मुझे मार रहा है: newpath = r'C: \ Program Files \ alex '; यदि os.path.exists (newpath) नहीं है: os.makedirs (newpath) – hughdbrown

+0

आमतौर पर पथनाम बोलने वाले केस-संवेदी होते हैं। – SilentGhost

27

क्या आपने os.mkdir की कोशिश की है?

आप भी इस छोटे से कोड स्निपेट कोशिश कर सकते हैं:

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

makedirs, निर्देशिका के कई स्तरों बनाता है अगर जरूरत है।

27

शायद आप os.makedirs चाहते हैं क्योंकि यह आवश्यक होने पर इंटरमीडिएट निर्देशिका भी बनाएगा।

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) 
संबंधित मुद्दे