मुश्किल नहीं हो सकता, लेकिन मैं एक मानसिक ब्लॉक कर रहा हूँ।
मुश्किल नहीं हो सकता, लेकिन मैं एक मानसिक ब्लॉक कर रहा हूँ।
जवाबों:
एक रास्ता:
import os
os.listdir("/home/username/www/")
glob.glob("/home/username/www/*")
glob.glob
ऊपर दी गई विधि छिपी हुई फ़ाइलों को सूचीबद्ध नहीं करेगी।
चूँकि मैंने वर्षों पहले मूल रूप से इस प्रश्न का उत्तर दिया था, इसलिए पैथलॉन को पायथन में जोड़ा गया है। निर्देशिका को सूचीबद्ध करने का मेरा पसंदीदा तरीका अब आमतौर iterdir
पर Path
वस्तुओं पर विधि शामिल है:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
['c:\\users']
glob.glob(r'c:\users\*')
(ग्लोब यह वास्तव में निर्देशिकाओं को सूचीबद्ध नहीं करता है, लेकिन तारांकन और ऐसे कार्य को पूरा करता है)।
os.walk
यदि आपको पुनरावृत्ति की आवश्यकता है तो इसका उपयोग किया जा सकता है:
import os
start_path = '.' # current directory
for path,dirs,files in os.walk(start_path):
for filename in files:
print os.path.join(path,filename)
glob.glob
या कर os.listdir
देगा।
import glob
एंटर glob.glob(r'c:\users')
एंटर केवल वापसी के लिए लगता है ['c:\\users']
। ऐसा क्यों है? मैं glob.glob का उपयोग करना चाहता हूं क्योंकि जैसा कि अन्य उपयोगकर्ताओं ने बताया है, यह छिपी हुई फाइलों की अनदेखी करते हुए एक निर्देशिका की सामग्री को निश्चित रूप से वापस करता है। यह महत्वपूर्ण है।
glob
:glob.glob(r'c:\users\*')
पायथन 3.5 के बाद से, आप उपयोग कर सकते हैं os.scandir
।
अंतर यह है कि यह फ़ाइल प्रविष्टियाँ लौटाता है नाम नहीं। विंडोज़ जैसे कुछ OS पर, इसका मतलब है कि आपको os.path.isdir/file
यह जानने की ज़रूरत नहीं है कि यह फ़ाइल है या नहीं, और यह सीपीयू समय बचाता है क्योंकि stat
विंडोज में डीआईआर स्कैन करते समय पहले से ही किया जाता है:
एक निर्देशिका की सूची और max_value
बाइट्स से बड़ी फ़ाइलों को प्रिंट करने के लिए उदाहरण :
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
(मेरा एक व्यापक प्रदर्शन-आधारित उत्तर यहां पढ़ें )
नीचे दिए गए कोड निर्देशिका और फ़ाइलों को dir के भीतर सूचीबद्ध करेगा। अन्य एक os.walk है
def print_directory_contents(sPath):
import os
for sChild in os.listdir(sPath):
sChildPath = os.path.join(sPath,sChild)
if os.path.isdir(sChildPath):
print_directory_contents(sChildPath)
else:
print(sChildPath)
.XYZ
यूनिक्स फाइल-सिस्टम संदर्भ में फ़ाइलों का मतलब है), जब इसके साथ प्रयोग किया जाता हैglob.glob("/home/username/www/.*")
?