Программа список файлов в каталоге

Задача получения списка файлов или папок в другой папке часто бывает при написании программы, поэтому, чтобы рецепт всегда был под рукой, решил написать коротенькую статью.

Получить список файлов в папке

Для получения списка файлов можно воспользоваться методом GetFiles.

Пример поиска файлов:

string[] allfiles = Directory.GetFiles(PathToFolder); foreach (string filename in allfiles)

Метод GetFiles может принимать 3 параметра, из которых первый обязательный:

GetFiles(String path, String pattern, SearchOption options)

path — путь к папке, в которой ищем файлы;

options — способ поиска, указывающий нужно искать только в текущей папке (SearchOption.TopDirectoryOnly) или во вложенных тоже (SearchOption.AllDirectories).

Пример поиска файлов по шаблону смотрите ниже (рекурсивный поиск).

Если список файлов очень большой, тогда лучше воспользоваться методом EnumerateFiles (доступен в .NET Framework 4.0 и выше), т.к. в отличие от GetFiles он возвращает IEnumerable и заполняет его как бы асинхронно, т.е. можно приступить к перебору списка файлов сразу, не дожидаясь получения всего списка и тем самым увеличить скорость обработки полученных файлов.

PCLife.me — Как сформировать список файлов в каталоге

Метод EnumerateFiles так же может принимать 3 параметра:

path — путь к папке, в которой ищем файлы;

pattern — шаблон поиска файлов;

options — способ поиска.

Пример поиска файлов методом EnumerateFiles:

IEnumerable allfiles = Directory.EnumerateFiles(PathToFolder); foreach (string filename in allfiles)

Как видим, поиск методом EnumerateFiles аналогичен GetFiles, однако, он начнется сразу, до получения всего списка файлов, что может быть актуальным при очень большом количестве файлов.

Получить список папок в папке

Для получения списка папок можно воспользоваться методом GetDirectories.

Пример поиска папок с помощью GetDirectories:

string[] allfolders = Directory.GetDirectories(PathToFolder); foreach (string folder in allfolders)

Метод GetDirectories может принимать 3 параметра, из которых первый обязательный:

GetDirectories(String path, String pattern, SearchOption options)

path — путь к папке, в которой ищем файлы;

options — способ поиска, указывающий нужно искать только в текущей папке (SearchOption.TopDirectoryOnly) или во вложенных тоже (SearchOption.AllDirectories).

По аналогии с поиском файлов, есть метод EnumerateDirectories, который позволяет обрабатывать список папок не дожидаясь его полного получения (доступен в .NET Framework 4.0 и выше).

Метод EnumerateDirectories аналогично GetDirectories принимает 3 параметра:

path — путь к папке, в которой ищем файлы;

pattern — шаблон поиска файлов;

options — способ поиска.

Пример поиска папок с помощью EnumerateDirectories:

IEnumerable allfolders = Directory.EnumerateDirectories(PathToFolder); foreach (string folder in allfolders)

Примечание: Во всех способах получения файлов и папок можно во втором параметре указывать шаблон поиска pattern, однако в нем можно использовать только * (любое количество любых символов) и ? (один любой символ) для указания шаблона поиска, регулярные выражения не поддерживаются.

Модуль os в Python. Получим список файлов и каталогов в текущем каталоге

Получить список файлов по шаблону рекурсивно

В этом случае нужно лишь добавить 2-й параметр, в котором указываем маску файлов и 3-й параметр, означающий что нужно искать файлы так же во вложенных папках.

string[] AllFiles = Directory.GetFiles(PathToFolder, «*.*», SearchOption.AllDirectories); foreach (string filename in AllFiles)

Однако, у этого способа есть недостаток — в случае, если в какую-то папку нет доступа, получится ошибка и список файлов не будет получен совсем.

Читайте также:
Формирование комфортной городской среды проект или программа

Рекурсивно получить список всех файлов и папок

Этот пример рекурсивного поиска файлов и папок не прервется в случае ошибки, а продолжится дальше. Вместо массива здесь используется List для записи списка файлов и папок.

List ls = GetRecursFiles(PathToFolder); foreach (string fname in ls) < MessageBox.Show(fname); >private List GetRecursFiles(string start_path) < Listls = new List(); try < string[] folders = Directory.GetDirectories(start_path); foreach (string folder in folders) < ls.Add(«Папка: » + folder); ls.AddRange(GetRecursFiles(folder)); >string[] files = Directory.GetFiles(start_path); foreach (string filename in files) < ls.Add(«Файл: » + filename); >> catch (System.Exception e) < MessageBox.Show(e.Message); >return ls; >

Плюсом такого рекурсивного поиска так же является то, что можно еще и контролировать уровень вложенности и делать, например, отступы для разных уровней.

Источник: codernotes.ru

Программа список файлов в каталоге

То ALL
Сорри за воду и воздух

Добавлено
ЗЫ Если окажется, что на компьютере нет ни одного редактора с сортировкой, можно воспользоваться командой Sort, а именно:
Z:dir /b /s >c:1.txt (где Z: CD-ROM)
C:sort 1.txt /o 2.txt
Можно забить эти две строчки в батничек

Avantrix: Audio CD Maker v5.0.4
Backup PLUS v7.0.4
Express ZIP v3.2
Koala HTML v1.0.5
Backup Вы напрасно его прелестным ругаете» (С) М. Булгаков «Собачье сердце»

Цитата:

В любом случае, за неимением нормальной и красивой проги, я полюзуюсь несколько другим решением: dir /b/o > Cataloque.txt

Все таки ком. строка присутствует. а как же выше
Цитата:

антиквариат, как катушечный магнитофон, или пишущая машинка

Цитата:

мне не нужны файлы для каталога, только директории

Ну вот здрасте, приехали. а помнится в первом посту было

Цитата:

А как получить список (за один раз) и поддиректорий и в них уже файлов? Пример. Каталог CD-Rom’a со всеми прогами и файлами.

Цитата:

Только не надо кидать еще один из вариантов командной строки, мне В ПРИНЦИПЕ это не нравится

Ну вот опять двадцать пять Все-таки кину , тем более что программ которые будут организовывать ваш каталог в таком виде как вам надо, здесь пока еще никто не предоставил. Сейчас меня будут бить, чтож, тока не сильно пож.
Итак:

Код:

echo off
mkdir c:temp
%1
cd
dir /b /s >c:tempdirlist.tmp
cd c:temp
sort dirlist.tmp /o dirlist.srt
copy c:tempdirlist.srt %2
cls
echo Список директорий находится в файле %2

Я тож на старенькой машинке баловался, особенно интересно пользоватся фаслом be.exe из комплекта Norton Utilites for DOS

Добавлено
Надо запускать dirlist z: c:mydocdir.txt

ЗЫ: У меня что то с командой IF NOT EXIST начал ХР глючить, так что пришлость упростить.

Добавлено
ЗЫ. Ну и наконец!! (ой!) для самых маленьких Дядька по имени Вишневский А.Е. в 1999 году написал програмку на VB и обозвал ее КаталогЪ v1.3 — Каталогизатор диска (88 Kb) (я и забыл про нее, она оказывается еще жива).
Описание автора: Программа предназначена для составления каталога для указанного раздела диска — дерева имен каталогов, подкаталогов и файлов. Собранные данные о структуре, списках подкаталогов и файлов заносятся на стандартный лист Excel.

Комментарий PC Magazine/RE: Если вам приходится записывать CD-R, то непременно возникает следующая задача – как распечатать его каталог с содержимым, чтобы полностью выводились, например, длинные имена с русскими названиями. Данная программа позволяет успешно решить эту задачу, хотя быстродействие ее невысокое. Может использоваться для создания каталогов с любых накопителей.

Цитата:

Данная программа позволяет успешно решить эту задачу, хотя быстродействие ее невысокое.

Не то, что в ком. строке

Art Directory Print
We know you have been missing the printing folder contents functionality not available in Windows.
http://www.zzee.com/adp/

Читайте также:
Идеи для компьютерных программ

Чё вы всё о ДОС-е? Есть много тулок для того что Узеру надо! Конечно знание Ком строки ещё не кому не мешало но всё ж.
Попробывал много тулок но понравилась толко одна Art HTML Listing. Мсем советую. Но по не умению Фулл Вер. пользовался Directory Lister. Тоже отменная прога.
На счет МП3 с бит рэйтом не знаю а на счет ФТП не помню. Увижу скажу.

String All предназначена для создания списков файлов. Програма позволяет содавать списки любой сложности и рамера. Система шаблонов позволяет настроить программу так, что конечный файл уже не нуждается в редактировании. Программа незаменима для web-мастеров для создания навигации по коллекции файлов. Программа была протестирована на создании JavaScript для дерева сервера MP3, на создании системы слайд-шоу для коллекции изоображений.
Основной принцип работы заключается в создании шаблонов для файлов и каталогов с помошью специальных макросов. Программа позволяет создавать отдельные шаблоны в зависимости от уровня вложенности каталогов и файлов в них. Количество шаблонов неограничено.

Ну и на закуску: как в DIR (и TREE) результат добавлять к существующему файлу. Это если нужен 1 каталог для всех (съемных!) дисков. Для этого случая метку каждого тома желательно прописывать в файле каталога перед содержимым каждого диска — вопрос в автоматизации.

Итак, знатоки ком. строки — налетай!

просто сохранить файл в нормальной кодировке из редактора, в котором вы видите русские буквы нормально.

Хм, пожалуй, dir не нуждается ни в каких красивых/болee удобынх оболчках

Страницы: 1 2 3 4

Источник: forum.ru-board.com

Список файлов Python в каталоге и подкаталогах

В Python есть модуль ОС, предоставляющий функции для работы с файлами. Мы можем перечислить файлы в каталоге и подкаталоге программно в Python, используя модуль ОС. В этой статье мы обсудим различные методы создания списка всех файлов в дереве каталогов и подкаталогах..

Как распечатать список файлов Python

Давайте напечатаем все файлы, перечисленные в нашем текущем рабочем каталоге. Во-первых, вам нужно импортировать модуль os в свой файл, а затем использовать функцию os.listdir().

Напишите следующий код в файле app.py.

print ( os . listdir ( path = ‘.’ ) )
python3 app . py
[ ‘index.html’ , ‘demo.txt’ , ‘.DS_Store’ , ‘person.txt’ , ‘app.json’ , ‘DataScience.ipynb’ ,
‘ads.txt’ , ‘example.http’ , ‘student.csv’ , ‘app.txt’ , ‘__pycache__’ , ‘data.csv’ ,
‘app.component.ts’ , ‘data.json’ , ‘help_examples.py’ , ‘MergeSort.java’ , ‘app.sql’ ,
‘NumPy.ipynb’ , ‘TensorFlow.ipynb’ , ‘data.csv.numbers’ , ‘app.py’ ,
‘info.log’ , ‘.ipynb_checkpoints’ , ‘SciKit Learn.ipynb’ , ‘.vscode’ , ‘app.rs’ , ‘mod.py’ ,
‘output.txt’ , ‘data.txt’ , ‘sample.txt’ , ‘app.cpp’ ]

Список файлов в каталоге и подкаталогах с os.listdir()

Нам нужно рекурсивно вызвать функцию os.listdir() для подкаталогов, чтобы создать полный список файлов в заданном дереве каталогов.

См. следующий код.

def getFiles ( dirName ) :
listOfFile = os . listdir ( dirName )
completeFileList = list ( )
for file in listOfFile :
completePath = os.path . join ( dirName , file )
if os.path . isdir ( completePath ) :
completeFileList = completeFileList + getFiles ( completePath )
completeFileList . append ( completePath )
return completeFileList
dirName = ‘/Users/krunal/desktop/code/pyt’
listOfFiles = getFiles ( dirName )
print ( listOfFiles )
python3 app . py
[ ‘/Users/krunal/desktop/code/pyt/index.html’ ,
‘/Users/krunal/desktop/code/pyt/demo.txt’ ,
‘/Users/krunal/desktop/code/pyt/.DS_Store’ ,
‘/Users/krunal/desktop/code/pyt/person.txt’ ,
‘/Users/krunal/desktop/code/pyt/app.json’ ,
‘/Users/krunal/desktop/code/pyt/DataScience.ipynb’ ,
‘/Users/krunal/desktop/code/pyt/ads.txt’ ,
‘/Users/krunal/desktop/code/pyt/example.http’ ,
‘/Users/krunal/desktop/code/pyt/student.csv’ ,
‘/Users/krunal/desktop/code/pyt/app.txt’ ,
‘/Users/krunal/desktop/code/pyt/__pycache__/help_examples.cpython-36.pyc’ ,
‘/Users/krunal/desktop/code/pyt/__pycache__/mod.cpython-36.pyc’ ,
‘/Users/krunal/desktop/code/pyt/data.csv’ ,
‘/Users/krunal/desktop/code/pyt/app.component.ts’ ,
‘/Users/krunal/desktop/code/pyt/data.json’ ,
‘/Users/krunal/desktop/code/pyt/help_examples.py’ ,
‘/Users/krunal/desktop/code/pyt/MergeSort.java’ ,
‘/Users/krunal/desktop/code/pyt/app.sql’ ,
‘/Users/krunal/desktop/code/pyt/NumPy.ipynb’ ,
‘/Users/krunal/desktop/code/pyt/TensorFlow.ipynb’ ,
‘/Users/krunal/desktop/code/pyt/data.csv.numbers’ ,
‘/Users/krunal/desktop/code/pyt/app.py’ ,
‘/Users/krunal/desktop/code/pyt/info.log’ ,
‘/Users/krunal/desktop/code/pyt/.ipynb_checkpoints/NumPy-checkpoint.ipynb’ ,
‘/Users/krunal/desktop/code/pyt/.ipynb_checkpoints/SciKit Learn-checkpoint.ipynb’ ,
‘/Users/krunal/desktop/code/pyt/.ipynb_checkpoints/DataScience-checkpoint.ipynb’ ,
‘/Users/krunal/desktop/code/pyt/.ipynb_checkpoints/TensorFlow-checkpoint.ipynb’ ,
‘/Users/krunal/desktop/code/pyt/SciKit Learn.ipynb’ ,
‘/Users/krunal/desktop/code/pyt/.vscode/settings.json’ ,
‘/Users/krunal/desktop/code/pyt/app.rs’ ,
‘/Users/krunal/desktop/code/pyt/mod.py’ ,
‘/Users/krunal/desktop/code/pyt/output.txt’ ,
‘/Users/krunal/desktop/code/pyt/data.txt’ ,
‘/Users/krunal/desktop/code/pyt/sample.txt’ ,
‘/Users/krunal/desktop/code/pyt/app.cpp’ ]

В приведенном выше коде мы определили функцию с именем getFiles(), которая принимает один аргумент с именем dirname. Затем мы создаем список и добавляем полный путь к файлам.

Итак, он начнет перебирать один за другим файл и добавит его полный путь в список, и, в конце концов, мы получим наш полный список файлов.

Получение списка файлов в каталоге и подкаталогах с помощью os.walk()

Модуль python os предоставляет функцию walk() для перебора дерева каталогов.

os . walk ( path )

Читайте также:
Ведущая программы будет вкусно

Функция os.walk() перебирает дерево каталогов при указании пути и для каждого каталога или подкаталога возвращает кортеж, содержащий(, , ).

См. следующий код.

dirName = ‘/Users/krunal/desktop/code/pyt’
listOfFiles = list ( )
for ( dirpath , dirnames , filenames ) in os . walk ( dirName ) :
listOfFiles += [ os.path . join ( dirpath , file ) for file in filenames ]
for elem in listOfFiles :
print ( elem )
python3 app . py
/ Users / krunal / desktop / code / pyt / index . html
/ Users / krunal / desktop / code / pyt / demo . txt
/ Users / krunal / desktop / code / pyt / . DS_Store
/ Users / krunal / desktop / code / pyt / person . txt
/ Users / krunal / desktop / code / pyt / app . json
/ Users / krunal / desktop / code / pyt / DataScience . ipynb
/ Users / krunal / desktop / code / pyt / ads . txt
/ Users / krunal / desktop / code / pyt / example . http
/ Users / krunal / desktop / code / pyt / student . csv
/ Users / krunal / desktop / code / pyt / app . txt
/ Users / krunal / desktop / code / pyt / data . csv
/ Users / krunal / desktop / code / pyt / app . component . ts
/ Users / krunal / desktop / code / pyt / data . json
/ Users / krunal / desktop / code / pyt / help_examples . py
/ Users / krunal / desktop / code / pyt / MergeSort . java
/ Users / krunal / desktop / code / pyt / app . sql
/ Users / krunal / desktop / code / pyt / NumPy . ipynb
/ Users / krunal / desktop / code / pyt / TensorFlow . ipynb
/ Users / krunal / desktop / code / pyt / data . csv . numbers
/ Users / krunal / desktop / code / pyt / app . py
/ Users / krunal / desktop / code / pyt / info . log
/ Users / krunal / desktop / code / pyt / SciKit Learn . ipynb
/ Users / krunal / desktop / code / pyt / app . rs
/ Users / krunal / desktop / code / pyt / mod . py
/ Users / krunal / desktop / code / pyt / output . txt
/ Users / krunal / desktop / code / pyt / data . txt
/ Users / krunal / desktop / code / pyt / sample . txt
/ Users / krunal / desktop / code / pyt / app . cpp
/ Users / krunal / desktop / code / pyt / __pycache__ / help_examples . cpython — 36.pyc
/ Users / krunal / desktop / code / pyt / __pycache__ / mod . cpython — 36.pyc
/ Users / krunal / desktop / code / pyt / . ipynb_checkpoints / NumPy — checkpoint . ipynb
/ Users / krunal / desktop / code / pyt / . ipynb_checkpoints / SciKit Learn — checkpoint . ipynb
/ Users / krunal / desktop / code / pyt / . ipynb_checkpoints / DataScience — checkpoint . ipynb
/ Users / krunal / desktop / code / pyt / . ipynb_checkpoints / TensorFlow — checkpoint . ipynb
/ Users / krunal / desktop / code / pyt / . vscode / settings . json

Перечисление всех файлов txt в указанном каталоге с Glob в Python

См. следующий код.

import glob
dirName = ‘/Users/krunal/desktop/code/pyt’
files = [ f for f in glob . glob ( dirName + «**/*.txt» , recursive = True ) ]
for f in files :
python3 app . py
/ Users / krunal / desktop / code / pyt / demo . txt
/ Users / krunal / desktop / code / pyt / person . txt
/ Users / krunal / desktop / code / pyt / ads . txt
/ Users / krunal / desktop / code / pyt / app . txt
/ Users / krunal / desktop / code / pyt / output . txt
/ Users / krunal / desktop / code / pyt / data . txt
/ Users / krunal / desktop / code / pyt / sample . txt

В приведенном выше примере мы использовали понимание списка, чтобы получить список всех файлов с расширением .txt.

Итак, в этом примере мы выводим только текстовые файлы, а не все файлы.

Список всех каталогов в указанном каталоге + подкаталоги(**)

См. следующий код.

import glob
dirName = ‘/Users/krunal/desktop/code/pyt’
folders = [ f for f in glob . glob ( dirName + «**/» , recursive = True ) ]
for f in folders :
python3 app . py
/ Users / krunal / desktop / code / pythonenv /
/ Users / krunal / desktop / code / pyt /

Заключение

Список файлов Python в каталоге и подкаталогах

Чтобы вывести каталоги, подкаталоги и файлы, Python имеет отличную встроенную поддержку, которая делает всю работу за вас. Управление файлами и работа с ними — повседневная работа любого программиста.

В этой статье мы увидели, как перечислить все каталоги, подкаталоги и файлы, используя методы Python os.walk(), blob.blob() и Python os.listdir(). Наконец, Python перечисляет все файлы в каталоге, и пример с подкаталогами заканчивается.

Оцените статью
Поделиться в Telegram

Автор статей и разработчик, делюсь знаниями.

Источник: python-lab.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru