Ça ne peut pas être dur, mais j'ai un blocage mental.
Ça ne peut pas être dur, mais j'ai un blocage mental.
Réponses:
Une manière:
import os
os.listdir("/home/username/www/")
glob.glob("/home/username/www/*")
le glob.glob méthode ci-dessus ne listera pas les fichiers cachés.
Depuis que j'ai répondu à cette question il y a des années, pathlib a été ajouté à Python. Ma façon préférée de lister un répertoire implique désormais généralement la iterdirméthode sur les Pathobjets:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
['c:\\users']
glob.glob(r'c:\users\*')(glob il ne répertorie pas réellement les répertoires, mais développe les astérisques et autres qui accomplissent une tâche similaire).
os.walk peut être utilisé si vous avez besoin de récursivité:
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.globou os.listdirva le faire.
import globENTER glob.glob(r'c:\users')ENTER semble seulement revenir ['c:\\users']. Pourquoi donc? Je voudrais utiliser glob.glob car, comme d'autres utilisateurs l'ont souligné, il retourne censément le contenu d'un répertoire tout en ignorant les fichiers cachés. C'est important.
glob:glob.glob(r'c:\users\*')
Le osmodule gère tout cela.
os.listdir(path)Renvoie une liste contenant les noms des entrées dans le répertoire donné par chemin. La liste est dans un ordre arbitraire. Il n'inclut pas les entrées spéciales «.» et '..' même s'ils sont présents dans le répertoire.
Disponibilité: Unix, Windows.
Depuis Python 3.5, vous pouvez utiliser os.scandir.
La différence est qu'il renvoie les entrées de fichier et non les noms. Sur certains systèmes d'exploitation comme Windows, cela signifie que vous n'avez pas besoin os.path.isdir/filede savoir s'il s'agit d'un fichier ou non, et cela économise du temps CPU carstat c'est déjà fait lors de l'analyse du répertoire sous Windows:
exemple pour lister un répertoire et imprimer des fichiers plus gros que des max_valueoctets:
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
(lisez une de mes réponses détaillées basées sur les performances ici )
Le code ci-dessous répertorie les répertoires et les fichiers dans le répertoire. L'autre est 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)
.XYZfichiers dans un contexte de système de fichiers Unix), lorsqu'il est utilisé avecglob.glob("/home/username/www/.*")?