Не может быть сложно, но у меня психическое расстройство.
Не может быть сложно, но у меня психическое расстройство.
Ответы:
В одну сторону:
import os
os.listdir("/home/username/www/")
glob.glob("/home/username/www/*")
glob.glob
Выше метод не будет список скрытых файлов.
Так как я первоначально ответил на этот вопрос несколько лет назад, pathlib был добавлен в Python. Мой предпочтительный способ перечисления каталога теперь обычно включает iterdir
метод для Path
объектов:
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
['c:\\users']
glob.glob(r'c:\users\*')
(глобус, на самом деле он не перечисляет каталоги, но расширяет звездочки и тому подобное, что выполняет аналогичную задачу).
os.walk
можно использовать, если вам нужна рекурсия:
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
или os.listdir
сделаю это.
import glob
ENTER glob.glob(r'c:\users')
ENTER только кажется, чтобы вернуться ['c:\\users']
. Это почему? Я хотел бы использовать glob.glob, потому что, как отмечали другие пользователи, он предположительно возвращает содержимое каталога, а также игнорирует скрытые файлы. Это важно.
glob
:glob.glob(r'c:\users\*')
Начиная с Python 3.5, вы можете использовать os.scandir
.
Разница в том, что он возвращает записи файлов, а не имена. В некоторых ОС, таких как Windows, это означает, что вам не нужно os.path.isdir/file
знать, является ли это файл или нет, и это экономит процессорное время, потому что stat
это уже сделано при сканировании директории в Windows:
Пример для вывода каталога и печати файлов размером больше max_value
байтов:
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
(прочитайте обширный мой ответ на основе производительности здесь )
Ниже приведен список каталогов и файлов в каталоге. Другой - 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
в виду файлы в контексте файловой системы Unix), когда используется сglob.glob("/home/username/www/.*")
?