Ç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 iterdir
méthode sur les Path
objets:
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.glob
ou os.listdir
va le faire.
import glob
ENTER 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 os
module 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/file
de 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_value
octets:
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)
.XYZ
fichiers dans un contexte de système de fichiers Unix), lorsqu'il est utilisé avecglob.glob("/home/username/www/.*")
?