Kann nicht schwer sein, aber ich habe eine mentale Blockade.
Kann nicht schwer sein, aber ich habe eine mentale Blockade.
Antworten:
Einweg:
import os
os.listdir("/home/username/www/")
glob.glob("/home/username/www/*")
Die glob.glob
obige Methode listet keine versteckten Dateien auf.
Seit ich diese Frage vor Jahren beantwortet habe, wurde pathlib zu Python hinzugefügt. Meine bevorzugte Methode zum Auflisten eines Verzeichnisses umfasst jetzt normalerweise die iterdir
Methode für Path
Objekte:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
['c:\\users']
glob.glob(r'c:\users\*')
(glob, es listet eigentlich keine Verzeichnisse auf, sondern erweitert Sternchen und solche, die eine ähnliche Aufgabe erfüllen).
os.walk
kann verwendet werden, wenn Sie eine Rekursion benötigen:
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
oder os.listdir
wird es tun.
import glob
ENTER glob.glob(r'c:\users')
ENTER scheint nur zurückzukehren ['c:\\users']
. Warum ist das so? Ich möchte glob.glob verwenden, da es, wie andere Benutzer bereits betont haben, angeblich den Inhalt eines Verzeichnisses zurückgibt und gleichzeitig versteckte Dateien ignoriert. Das ist wichtig.
glob
:glob.glob(r'c:\users\*')
Das os
Modul erledigt all diese Dinge.
os.listdir(path)
Gibt eine Liste zurück, die die Namen der Einträge in dem durch path angegebenen Verzeichnis enthält. Die Liste ist in beliebiger Reihenfolge. Die Sondereinträge '.' Sind nicht enthalten. und '..' auch wenn sie im Verzeichnis vorhanden sind.
Verfügbarkeit: Unix, Windows.
Seit Python 3.5 können Sie verwenden os.scandir
.
Der Unterschied besteht darin, dass Dateieinträge und keine Namen zurückgegeben werden. Unter einigen Betriebssystemen wie Windows bedeutet dies, dass Sie nicht os.path.isdir/file
wissen müssen, ob es sich um eine Datei handelt oder nicht. Dies spart CPU-Zeit, da stat
dies bereits beim Scannen von Verzeichnissen in Windows erfolgt:
Beispiel zum Auflisten eines Verzeichnisses und zum Drucken von Dateien, die größer als max_value
Bytes sind:
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
(lesen Sie eine umfangreiche leistungsbasierte Antwort von mir hier )
Der folgende Code listet Verzeichnisse und die Dateien im Verzeichnis auf. Der andere ist 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
Dateien in einem Unix-Dateisystemkontext), wenn sie mit verwendet werdenglob.glob("/home/username/www/.*")
?