2016-11-02 4 views
2

Der folgende Code eine Liste von Verzeichnissen druckt enthält, die alle einen 3-Buchstaben-Code enthalten passieren, Beispiel:Python - Wählen Sie Verzeichnis, das eine bestimmte Zeichenfolge

// Server/Jobs/2016 \ AAM - 'areallylongfilename'/

// Server/Jobs/2016 \ CLM - 'areallylongfilename'/

// Server/Jobs/2016 \ COO - 'areallylongfilename'/

import os 
basepath = '//Server/Jobs/2016' 
for fname in os.listdir(basepath): 
    path = os.path.join(basepath, fname) 
    if os.path.isdir(path): 
     print(path) 

Wie kann ich ein Verzeichnis f erhalten aus der Liste basierend auf dem 3-Buchstaben-Code?

+1

Dieser Code nicht zurück * Liste der Verzeichnisse, die alle einen 3-Buchstaben-Code * enthalten, aber Pfade aller Verzeichnisse, die innerhalb von 'basispfad' vorhanden sind. Und willst du einen Pfad von den gedruckten Pfaden drucken? Wenn ja, irgendein spezifischer Pfad oder ein zufälliger Pfad? –

+0

Ja, ich möchte einen Pfad drucken, wenn er den eingegebenen 3-Buchstaben-Code enthält. Ich mache eine Tkinter-Anwendung zum Verschieben von Dateien aus einer Quelle in eines der Verzeichnisse im Pfad // Server/Jobs/2016. Die Anwendung fragt nach einem Code aus drei Buchstaben, um ein Zielverzeichnis auszuwählen. –

Antwort

0
import os 
basepath = '//Server/Jobs/2016' 
asked_name = 'COO' 
if len(asked_name) != 3: 
     print "Expected 3 letter code, got:", asked_name 
else: 
     for fname in os.listdir(basepath): 
       path = os.path.join(basepath, fname) 
       if os.path.isdir(path): 
         if fname == asked_name: 
           print(path) 
+0

Es sollte 'wenn Name in FName gefragt wird. Ansonsten, danke! –

0

Angenommen, Sie "d:" scannen möchten Platte können Sie Code wie:

 
import os 
dir="d:\\" 
for root,dirs,files in os.walk(dir): 
    for a_dir in dirs: 
     if ("Server" in a_dir) and ("Jobs" in a_dir) and ("2016" in a_dir): 
      print os.path.join(root,a_dir) 
Verwandte Themen