2011-03-24 20 views
13

मैं अभी पाइथन के साथ शुरू कर रहा हूं लेकिन पहले ही इसे बैश खोल स्क्रिप्टिंग से अधिक उत्पादक पाया है।निर्देशिकाओं को पार करने और फ़ाइल जानकारी पढ़ने के लिए पायथन प्रोग्राम

मैं Python स्क्रिप्ट है जो हर निर्देशिका कि निर्देशिका से शाखाओं मैं में स्क्रिप्ट का शुभारंभ पार किए जाने लिखने की कोशिश कर रहा हूँ, और प्रत्येक फ़ाइल यह मुठभेड़ों के लिए, इस वर्ग का एक उदाहरण लोड:

class FileInfo: 

    def __init__(self, filename, filepath): 
     self.filename = filename 
     self.filepath = filepath 

फ़ाइलपैथ विशेषता रूट (/) से पूर्ण पूर्ण पथ होगी। यहाँ मैं क्या करने के लिए मुख्य कार्यक्रम चाहते हैं, उसके लिए स्यूडोकोड mockup है:

from (current directory): 

    for each file in this directory, 
    create an instance of FileInfo and load the file name and path 

    switch to a nested directory, or if there is none, back out of this directory 

मैं() और ok.path.walk() os.walk के बारे में पढ़ रहा हूँ, लेकिन मैं कुछ सलाह चाहते हैं पाइथन में इसे लागू करने का सबसे सरल तरीका क्या होगा। अग्रिम में धन्यवाद।

+0

आप बनाए गए ऑब्जेक्ट को कहां निर्दिष्ट करना चाहते हैं? यह अन्यथा तुच्छ लगता है। – Ofir

उत्तर

17

मैं os.walk का उपयोग निम्न कार्य चाहते हैं: "।"

def getInfos(currentDir): 
    infos = [] 
    for root, dirs, files in os.walk(currentDir): # Walk directory tree 
     for f in files: 
      infos.append(FileInfo(f,root)) 
    return infos 
+0

पाइथन के लिए कैमेलकेज़ के बजाय सांप_case का उपयोग करें। – franka

7

फ़ाइल प्रति एक FileInfo उदाहरण की एक सूची प्राप्त करने के लिए

info = [] 
for path, dirs, files in os.walk("."): 
    info.extend(FileInfo(filename, path) for filename in files) 

या

info = [FileInfo(filename, path) 
     for path, dirs, files in os.walk(".") 
     for filename in files] 

की कोशिश करो।

1

प्रयास करें यह

आयात ओएस

os.walk में आइटम (के लिए

, " * "):

 print item 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^