आप कैसे जांचते हैं कि एक फाइल एक सामान्य फाइल है या एक निर्देशिका जो अजगर का उपयोग कर रही है?
आप कैसे जांचते हैं कि एक फाइल एक सामान्य फाइल है या एक निर्देशिका जो अजगर का उपयोग कर रही है?
जवाबों:
os.path.isdir()और os.path.isfile()आपको जो चाहिए वो आपको देना चाहिए। देखें:
http://docs.python.org/library/os.path.html
जैसा कि अन्य उत्तरों ने कहा है, os.path.isdir()और os.path.isfile()आप जो चाहते हैं। हालांकि, आपको यह ध्यान रखने की आवश्यकता है कि ये केवल दो मामले नहीं हैं। os.path.islink()उदाहरण के लिए सहजीवन का उपयोग करें । इसके अलावा, Falseयदि फ़ाइल मौजूद नहीं है, तो ये सभी वापस आ जाते हैं, इसलिए आप शायद साथ os.path.exists()ही जाँचना चाहते हैं ।
पायथन 3.4 ने मानक पुस्तकालय में मॉड्यूल पेश कियाpathlib , जो फाइलसिस्टम रास्तों को संभालने के लिए एक वस्तु उन्मुख दृष्टिकोण प्रदान करता है। प्रासंगिक तरीकों होगा .is_file()और .is_dir():
In [1]: from pathlib import Path
In [2]: p = Path('/usr')
In [3]: p.is_file()
Out[3]: False
In [4]: p.is_dir()
Out[4]: True
In [5]: q = p / 'bin' / 'vim'
In [6]: q.is_file()
Out[6]: True
In [7]: q.is_dir()
Out[7]: False
पाथिब पर भी पाथिब 2 मॉड्यूल के माध्यम से पायथन 2.7 पायथन पर उपलब्ध है ।
import os
if os.path.isdir(d):
print "dir"
else:
print "file"
यदि आप निर्देशिकाओं के एक सेट के माध्यम से बस आगे बढ़ रहे हैं, तो बेहतर os.chdirहोगा कि आप असफल होने पर प्रयास करें और त्रुटि / चेतावनी दें:
import os,sys
for DirName in sys.argv[1:]:
SaveDir = os.getcwd()
try:
os.chdir(DirName)
print "Changed to "+DirName
# Do some stuff here in the directory
os.chdir(SaveDir)
except:
sys.stderr.write("%s: WARNING: Cannot change to %s\n" % (sys.argv[0],DirName))