$ tree
.
├── empty_dir1
├── empty_dir2
├── subdir1
│ ├── file1.abc
│ └── file2.abc
└── subdir2
├── file1.abc
└── file2.abc
4 directories, 4 files
$ python -c 'import os;empty=[r for r,s,f in os.walk(".") if not f and not s and r != "." ];map(lambda x: os.rmdir(x),empty)'
$ tree
.
├── subdir1
│ ├── file1.abc
│ └── file2.abc
└── subdir2
├── file1.abc
└── file2.abc
Это работает так:
мы используем функцию os.walk() для рекурсивного перехода к дереву каталогов. На каждой итерации r устанавливается текущая папка, к которой мы обращаемся, s содержит список каталогов внутри r, а f будет содержать список файлов в этой папке. Конечно, если f и s пусты, мы знаем, что r пуст. Первое понимание списка позволяет нам создать empty, список всех пустых каталогов, основанный на приведенной выше оценке. вторая функция map() используется для выполнения os.rmdir() для каждого элемента в списке empty. Может быть использовано и понимание списка.Как сценарий, это будет так:
#!/usr/bin/env python
import os
empty=[]
for r,s,f in os.walk("."):
if not f and not s and r != ".":
empty.append(r)
for i in empty:
os.rmdir(i)
эта проблема принимает ошибка #1731163. https://bugs.launchpad.net/ubuntu/+источник/линукс/+ошибка/1731163
я с помощью этой страницы можно изменить параметры grub и решение работать хорошо: https://bugs.launchpad.net/ubuntu/+источник/линукс/+ошибка/1731163
Эта проблема устранена ошибкой # 1731163. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1731163
Я использую эту страницу для изменения параметров grub и решения, которые хорошо работают: https: // bugs.launchpad.net/ubuntu/+source/linux/+bug/1731163