2013-02-20 88 views
6

पाइथन कैसे दिखें और देखें कि फ़ाइल की आवश्यकता है या नहीं, और यदि कोई नहीं बनाया गया है?कोई फ़ाइल मौजूद है या नहीं, तो पाइथन जांच कैसे करें?

असल में मैं पाइथन को अपने फ़ाइल नाम KEEP-IMPORTANT.txt की तलाश करना चाहता हूं, लेकिन जब मैं py2app का उपयोग करके अपना ऐप बनाता हूं तो यह काम नहीं करता है क्योंकि इसमें फ़ाइल नहीं है। जब मैं फ़ाइल को आज़माता हूं और बना देता हूं तो यह काम नहीं करेगा (मुझे लगता है क्योंकि पाइथन इसे उत्पन्न करना है)।

मैं पाइथन चाहता हूं कि फ़ाइल मौजूद है या नहीं, अगर ऐसा होता है तो यह फ़ाइल उत्पन्न नहीं करता है, अन्यथा यह करता है।

+0

आप फ़ाइल के साथ क्या करना चाहते हैं? इसे अधिलेखित करें? इसे पढ़ें? इसमें शामिल हों? दोनों? –

+2

"जब मैं फ़ाइल को आज़माता हूं और बना देता हूं तो यह काम नहीं करेगा (मुझे लगता है क्योंकि पाइथन इसे उत्पन्न करना है)।" शायद ही नहीं। आपको अधिक जानकारी जोड़नी चाहिए और आपके पास प्रासंगिक कोड दिखाना चाहिए। –

+0

फ़ाइल को मौजूद होने की आवश्यकता है कि सभी – user2093174

उत्तर

7

Similar question

यह सबसे अच्छा तरीका है:

try: 
    with open(filename) as file: 
     # do whatever 
except IOError: 
    # generate the file 

वहाँ भी os.path.exists (है), लेकिन यह एक सुरक्षा चिंता का विषय हो सकता है।

+0

मैंने त्रुटियों के लिए इस विधि का परीक्षण करने के लिए एक उदाहरण दिया। पायथन 2.7 अनुमति त्रुटियों में IOError बढ़ाएं। मैंने परीक्षण फ़ाइल के लिए पढ़ने की पहुंच रद्द कर दी लेकिन लिखने की अनुमति दी। फ़ाइल को पढ़ने के लिए एक IOError उत्पन्न करने का प्रयास कर रहा था और मैं इस अपवाद का उपयोग करके इसे ओवरराइट करने में सक्षम था। फ़ाइल को पढ़ने के रूप में यह Python 3 में काम नहीं करेगा PermissionError। यह शायद एक विशिष्ट परिदृश्य है जो होने की संभावना नहीं है। मुझे आश्चर्य है कि मौजूदा फाइल के साथ IOError अन्य तरीकों से क्या हो सकता है। – Octipi

+0

यदि आपके पास फ़ाइल के लिए आरडब्ल्यू अनुमति नहीं है, तो इसे क्लॉबर करने की कोशिश नहीं करेंगे, बस एक और IOError उठाएं? –

+0

पायथन 3 में यह अनुमति प्रविष्टि उठाएगा। मैंने असंभव परिदृश्य का परीक्षण किया कि आपके पास लिखने की अनुमति थी लेकिन अनुमतियां नहीं पढ़ीं। इस मामले में, पायथन 2.7 के लिए, फ़ाइल को IOError उठाया गया लेकिन मैं अभी भी लिखने की अनुमति के साथ इसे लिख सकता था। – Octipi

7

यह एक-लाइनर यह देखने के लिए जांच करेगा कि फ़ाइल मौजूद है या नहीं, और अगर ऐसा नहीं होता है तो इसे बनाएं।

open("KEEP-IMPORTANT.txt", "a") 
+0

+1 और कोई त्रुटि नहीं - लेकिन फ़ाइल के पिछले बिट्स को हटाने के बारे में क्या है? – cutrightjm