2012-07-14 6 views
5
try: 
    directoryListing = os.listdir(inputDirectory) 
    #other code goes here, it iterates through the list of files in the directory 

except WindowsError as winErr: 
    print("Directory error: " + str((winErr))) 

यह ठीक काम करता है, और मैंने परीक्षण किया है कि निर्देशिका मौजूद नहीं होने पर यह चकित और मर नहीं जाती है, लेकिन मैं एक पायथन पुस्तक में पढ़ रहा था जिसे मैं " "फाइलें खोलते समय। क्या मैं ऐसा करने का एक पसंदीदा तरीका है?पायथन

उत्तर

4

आप बिल्कुल ठीक हैं। os.listdir फ़ंक्शन फ़ाइलें नहीं खोलता है, इसलिए आखिरकार आप ठीक हैं। टेक्स्ट फ़ाइल या इसी तरह पढ़ने के दौरान आप with कथन का उपयोग करेंगे।

बयान के साथ एक का एक उदाहरण:

with open('yourtextfile.txt') as file: #this is like file=open('yourtextfile.txt') 
    lines=file.readlines()     #read all the lines in the file 
             #when the code executed in the with statement is done, the file is automatically closed, which is why most people use this (no need for .close()). 
+1

ठीक है! धन्यवाद। मैं अजगर के लिए नया हूं, और चीजों को करने के लिए सही तरीके से सीखने की कोशिश कर रहा हूं, "इसे काम करने" के बजाय –

+0

कोई समस्या नहीं, मैं सिर्फ संदर्भ के लिए एक कथन का एक उदाहरण जोड़ूंगा। –

+0

यदि आप अधिक ज्ञान प्रदान करने के मूड में हैं, तो "साथ" क्या करता है। क्या यह सिर्फ उन चीज़ों का एक समूह है जो फ़ाइल से खोलने/पढ़ने के दौरान गलत हो सकते हैं और इसे एक त्रुटि में बंडल कर सकते हैं? भ्रष्टाचार, वहां नहीं, आदि –

2

आप जो कर रहे हैं वह ठीक है। फ़ाइलों को खोलने के लिए वास्तव में पसंदीदा तरीका है, लेकिन सूचीडी सिर्फ निर्देशिका पढ़ने के लिए पूरी तरह से स्वीकार्य है।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद! –

+0

कोई समस्या नहीं है। मुझे उम्मीद है कि आप पाइथन – Wulfram

+0

के साथ अपने साहस का आनंद ले रहे हैं हां, मुझे अब तक बहुत पसंद है। मैंने अब तक ज्यादातर सी ++ और जावा किया है। –