2011-05-24 6 views
93

में नकारात्मकता यदि पथ मौजूद नहीं है, तो मैं निर्देशिका बनाने की कोशिश कर रहा हूं, लेकिन! (नहीं) ऑपरेटर काम नहीं करता है। मुझे यकीन नहीं है कि पायथन में कैसे नकारात्मक होना है ... ऐसा करने का सही तरीका क्या है?पायथन

if (!os.path.exists("/usr/share/sounds/blues")): 
     proc = subprocess.Popen(["mkdir", "/usr/share/sounds/blues"]) 
     proc.wait() 
+17

वैसे, क्यों नहीं का उपयोग पायथन के 'os.mkdir()'? – Neil

+0

मुझे os.mkdir() फ़ंक्शन के बारे में पता नहीं था, हालांकि मुझे लगा कि ऐसा कुछ था। – David

उत्तर

134

निषेध ऑपरेटर not है। इसलिए not के साथ बस अपने ! को प्रतिस्थापित करें।

अपने उदाहरण के लिए, ऐसा करते हैं:

if not os.path.exists("/usr/share/sounds/blues") : 
    proc = subprocess.Popen(["mkdir", "/usr/share/sounds/blues"]) 
    proc.wait() 

अपने विशिष्ट उदाहरण के लिए (के रूप में नील टिप्पणी में कहा), तो आपको subprocess मॉड्यूल का उपयोग करने के लिए नहीं है, तो आप बस os.mkdir() उपयोग कर सकते हैं अतिरिक्त अपवाद हैंडलिंग भलाई के साथ आपको आवश्यक परिणाम प्राप्त करने के लिए।

उदाहरण:

blues_sounds_path = "/usr/share/sounds/blues" 
if not os.path.exists(blues_sounds_path): 
    try: 
     os.mkdir(blues_sounds_path) 
    except OSError: 
     # Handle the case where the directory could not be created. 
19

पायथन विराम चिह्न के लिए अंग्रेजी कीवर्ड पसंद करते हैं। not x का उपयोग करें, यानी not os.path.exists(...)। एक ही बात && और || के लिए जाती है जो पाइथन में and और or हैं।

7

ऐसा करें: अजगर में

if not os.path.exists(pathName): 
    do this 
1

हर किसी से इनपुट का मेल आपको मिल चाहते हैं (, कोई कोष्ठक, os.mkdir का उपयोग नहीं का उपयोग करें) ...

specialpathforjohn = "/usr/share/sounds/blues" 
if not os.path.exists(specialpathforjohn): 
    os.mkdir(specialpathforjohn) 
+1

आपका कोड (और ओपी) एक दुर्घटना होने का इंतजार कर रहा है - एक लंबी अवधि की शाब्दिक स्ट्रिंग के दो उदाहरण जो संभावित रूप से समान होना चाहिए। और कृपया दोबारा जवाब न दें कि यह सिर्फ एक उदाहरण है - यह नए लोगों के लिए एक बीएडी उदाहरण है। –