पायथन में नकारात्मकता


162

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

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

19
वैसे, पायथन का उपयोग क्यों नहीं करते हैं os.mkdir()?
नील

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

जवाबों:


229

पायथन में नेगेटिव ऑपरेटर है 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.

30

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



1

इनपुट को अन्य सभी से मिलाएं (उपयोग करें, नहीं, परेंस नहीं, उपयोग करें os.mkdir) आपको मिलेगा ...

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

1
आपका कोड (और ओपी) एक दुर्घटना होने की प्रतीक्षा कर रहा है - लंबे समय तक शाब्दिक स्ट्रिंग के दो उदाहरण जो संभवतः समान होने चाहिए। और कृपया यह न माने कि यह सिर्फ एक उदाहरण है - यह newbies के लिए एक BAD उदाहरण है।
जॉन मैकिन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.