powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Функция Python получения списка файлов(рекурсивная)
7 сообщений из 7, страница 1 из 1
Функция Python получения списка файлов(рекурсивная)
    #38387602
bald56rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня. имеется следующая функция:
Код: python
1.
2.
3.
4.
5.
6.
7.
def GetListForBackup(PathForBackup):
    for file in os.listdir(PathForBackup):
        path = os.path.join(PathForBackup, file)
        if not os.path.isdir(path):
            list.append(path)
        else:
            GetListForBackup(path)


её смысл в следующем хочу получить список файлов для архивирования(скрипт для бакапа). вопрос в следующем правильно ли делать так или есть способы лучше???
P.S.: каркас функции взял из книги по изучению питона("Функция рекурсивного обхода каталога" в оригинале она выводила информацию на экран я переделал что бы получить список) по которому потом делаю так
Код: python
1.
2.
3.
4.
5.
def backup(list_backup):
    fname = now_date.strftime("%d.%m.%Y") + '.zip'
    with zipfile.ZipFile(fname, 'w') as myzip:
        for l in list_backup:
            myzip.write(l)
...
Рейтинг: 0 / 0
Функция Python получения списка файлов(рекурсивная)
    #38388073
bald56rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может кто нибуть подсказать как переделать функцию
Код: python
1.
2.
3.
4.
5.
6.
7.
def GetListForBackup(PathForBackup):
    for file in os.listdir(PathForBackup):
        path = os.path.join(PathForBackup, file)
        if not os.path.isdir(path):
            list.append(path)
        else:
            GetListForBackup(path)


что бы она возвращала список?(на текущий момент список создается не в функции, в теле функции он только заполняется )
...
Рейтинг: 0 / 0
Функция Python получения списка файлов(рекурсивная)
    #38388090
QNiLYГусь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bald56rus,

Для того, чтобы функция возвращала что-то корме None, в ней должно присутствовать одно из ключевых слов - либо return либо yield
...
Рейтинг: 0 / 0
Функция Python получения списка файлов(рекурсивная)
    #38388381
bald56rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
def GetListForBackup(PathForBackup):
        list = []
        for file in os.listdir(PathForBackup):
        path = os.path.join(PathForBackup, file)
        if not os.path.isdir(path):
            list.append(path)
        else:
            GetListForBackup(path)
        return list


если я пишу таким образом то тогда функция возвращает список файлов из корня директории передаваемой функции т.е. вызов самой себя не происходит на сколько я понимаю.
...
Рейтинг: 0 / 0
Функция Python получения списка файлов(рекурсивная)
    #38394129
python123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простейший пример рекурсии:
Код: python
1.
2.
3.
4.
5.
def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)


Идея заключается в том чтобы накапливать значения "нижних" функцих в "верхних" функциях
...
Рейтинг: 0 / 0
Функция Python получения списка файлов(рекурсивная)
    #38394167
232343543
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Функция Python получения списка файлов(рекурсивная)
    #38395790
bald56rus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо за подсказку всем кто ответил, функция стала выглядеть вот так.
Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#Функция заполняет список для архивирования
def GetListForBackup(PathForBackup):
    ListForBackup = []
    for file in os.listdir(PathForBackup):
        path = os.path.join(PathForBackup, file)
        if not os.path.isdir(path):
            ListForBackup.append(path)
        else:
            ListForBackup += GetListForBackup(path)
    return ListForBackup



тему можно закрывать
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Функция Python получения списка файлов(рекурсивная)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]