Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 30, 2011 01:24:20

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9737
Репутация: +  843  -
Профиль   Отправить e-mail  

удалить все пустые каталоги.

apologize828
Так вот необходимо: если например df -> gf -> пусто, то удалить gf и df.
это удаление всех пустых каталогов ?
ниоткуда не следует, что нужно удалять пустые каталоги из каталога, где есть файлы
а, в названии темы же инфа



Отредактировано (Авг. 30, 2011 01:28:45)

Офлайн

#2 Авг. 30, 2011 10:22:11

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

удалить все пустые каталоги.

Rodegast
Ловите вариант с рекурсией :)

#!/usr/bin/python
# -*- coding: utf-8 -*-
import os

def udalenie(kat, P = True):
if os.path.isdir(kat):
if len(os.listdir(kat)) > 0:
for x in os.listdir(kat):
if os.path.isdir(os.path.join(kat,x)):
if len(os.listdir(os.path.join(kat,x))) == 0: os.rmdir(os.path.join(kat,x))
else: udalenie(os.path.join(kat,x))
if P: udalenie(kat, False)
else: os.rmdir(kat)
огромный респект, то что надо.

py.user.next
это удаление всех пустых каталогов ?
ниоткуда не следует, что нужно удалять пустые каталоги из каталога, где есть файлы
а, в названии темы же инфа
извиняюсь если не понятно объяснил что нужно)



Офлайн

#3 Июнь 2, 2013 15:19:06

ve_i_uj
Зарегистрирован: 2013-06-02
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

удалить все пустые каталоги.

import os

n = False
while n == False:
n = True
for root, dirs, files in os.walk(copy_dir):
if not dirs:
if not files:
n = False
os.rmdir(root)

Отредактировано ve_i_uj (Июнь 2, 2013 15:19:34)

Офлайн

#4 Июнь 3, 2013 07:58:00

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

удалить все пустые каталоги.

import os
for root, dirs, files in os.walk(top, topdown=False):
    if not files:
        for name in dirs:
            os.rmdir(os.path.join(root, name))



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version