pd.find
2007-11-10 16:06Продукт основан на попытке создать объектно-ориентированное API для доступа к файловой системе. Используя этот продукт, с файлами и директориями можно работать как со словарями и их элементами. Кроме того, как следует из название, важным назначением утилиты является поиск файлов на диске, удовлетворяющий некоторым условием. Можно считать что это программа find, встроенная в питон.
Репозиторий программы: http://code.dreambot.ru/svn/pd.find/trunk/ . Последняя версия продукта залита в PYPI.
Краткое описание пакета
Пакет pd.find - это простой способ работать с файловой системой, искать и открывать на ней файлы. Работа с файловой системой выглядит так же, как работа с обычным словарем:
>>> import pd.find
>>> f=pd.find.file.File("/etc/sysconfig")
>>> f
'/etc/sysconfig'
>>> f.keys()
['harddisk', 'lm_sensors', 'ipw3945d~', 'syscheckerrc', 'mouse']
>>> f['lm_sensors']
'/etc/sysconfig/lm_sensors'
>>> print str(f['lm_sensors'])
# /etc/sysconfig/lm_sensors - Defines modules loaded by
Другое важное назначение пакета - это поиск файлов способом, подобным тому, который использует утилита find:
>>> import pd.find
>>> pd.find.find("/etc/sysconfig",lambda x : x.isreg() and x.check_regex(".*rc"))
<generator object at 0xb7cca7cc>
>>> for item in pd.find.find("/etc/sysconfig",lambda x : x.isreg() and x.check_regex(".*rc$")) :
... print item.path
...
/etc/sysconfig/xinitrc
/etc/sysconfig/syscheckerrc
>>>
Работа с pd.find.file.File
Конструктор вызывается как в примере, с указанием одного обязательного параметра - пути к файлу (или директории). Другие параметры:
- dereference
- Следовать симлинкам (по умолчанию False)
После инициализации, объект pd.find.file.File ведет себя как обычный словарь, ключи которого соответствуют именам файлов и поддиректорий, а значения, полученные по этим ключам - объекты, соответствующие вложенным объектам. В результате работа с файловой системой делается такой же простой, как и с обычными файлами. Объект File предоставляет несколько полезных функций и атрибутов:
- path
- Атрибут содержит полный путь к файлу;
- __str__()
- Функция возвращает тело файла.
Другие атрибуты связаны с проверкой условий, и будут описаны ниже.
Вызов утилиты pd.find.find
Утилита pd.find.find вызывается для рекурсивного поиска файлов, соответствующих неким условиям. Функция принимает следующие аргументы:
- path
- Путь к каталогу, с которого начнется поиск;
- condition
- Условие, которое проверяется на просматриваемых файлах и директориях, условие удовлетворяется - найденный объект передается на выход функции;
- precondition
- Условие, которое проверяется перед просмотром поддиректории. Если условие не выполнено, директория просматриваться не будет;
- dereference
- Если параметр установлен в значение "Истинно", то поиск будет следовать символическим ссылкам.
Функция возвращает генератор списка найденных объектов.
Тесты, которые предоставляет объект File
Работа утилиты pd.find.find требует, что бы на объекте файл можно было проводить различные тесты. Вот список этих тестов:
- mtime
- Вернуть время модификации
- atime
- Вернуть время последнего доступа
- ctime
- Вернуть время создания файла
- newer
- Вернуть "Истинно" если объект новее, чем тот, который задан переданым путем.
- check_name
- Вернуть "Истинно" если имя объекта равно переданному имени
- check_path
- Вернуть "Истинно" если путь к объекту равно переданному пути
- check_path_regex
- Вернуть "Истинно" если регулярно выражение опознает путь к объекту
- check_regex
- Вернуть "Истинно" если регулярно выражение опознает имя объекта
- check_iregex
- Вернуть "Истинно" если регулярно выражение опознает имя объекта без учета регистра букв
- depth
- Вернуть текущую глубину просмотренного дерева
- dele
- Удалить файл, соответствующий пути текущего объекта
- execute
- Заменить подстроку "{}" в аргументе frm на путь к файлу и выполнить полученную строку при помощи вызова os.system()
Ссылки на эту статью:
Реанимация Python PolicyВложено:
present simple way use filesystem to search and read files on it. There are other arguments: dereference Follow symlinks (is False by default) The File object to provide some useful methods and attributes: path Attribute present absolute file path; utility issued to reqursive search files to satisfy some conditions. condition Condition checked on scanned files and directories. If condition satisfy - object yielded by utility; dereference On true value of this argument searhing will be followed by symbolic link. Utility return generator of list object find by them. ...


