Python продукты pd.lib

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

Вложено:

pd.find README.txt 2007-11-10 16:06 Андрей Орлов 

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. ...

Эпицентр Zope3 Учат тут Нейросети Репозиторий Статистика Редакторам Проекты
Подписаться на RSS Feed Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site noooxml