2016-07-01 15 views
0

Ich versuche, eine Datei in meinen Verzeichnisdateien zu suchen. Ich sah ein Beispiel und konnte nicht verstehen:Was bedeutet "./" in os.path?

import os 
import glob 

file_glob = './rpts/folderA/*_fileA.txt' 
magic_check = re.compile('[*?[]') 
if(magic_check.search(file_glob)) 
    file_list = glob.glob(os.path.expanduser(file_glob)) 

Was bedeutet der ./ Teil bedeuten? Ich verstehe, dass ../ zum vorherigen Verzeichnis wechselt.

Was ich denke, es tut:

  1. die Wild Card erweitern, um eine Liste von Dateien zu erhalten, die die Regex paßt
  2. Die Dateien in einer Liste gespeichert werden file_list
  3. Magie Scheck regex, genannt [*?[] : Was ist die [ innerhalb [ ] für?
+2

'" ./ "' ist ausführlich zu sagen "hier" - ein relativer Pfad, anstatt zu versuchen, einen vollständigen, absoluten Pfad zu erhalten (zB "./files" statt "C: // python35/program/files ") – Delioth

+0

Das hat wirklich nichts mit Python zu tun. '.' ist das aktuelle Arbeitsverzeichnis; Sie können es auch in Ihrer Schale versuchen. –

+1

Beachten Sie, dass '../' 'das übergeordnete Verzeichnis' ist; es ist nicht wirklich das 'vorherige Verzeichnis'. –

Antwort

1

Als Martijn gesagt ist diese UNIX-Shell-Notation für den aktuellen Standort (CWD oder PWD). Der Grund dafür ist robuster. Wenn die Benutzerumgebung im Suchpfad ($ PATH-Variable) nicht "./" hat, findet die Shell die Datei rpts/folderA/* _ fileA.txt nicht. Mit "./" an der Vorderseite ist dieses Skript unabhängig von $ PATH.