четверг, 26 марта 2009 г.

Видеоматериалы по изучению OpenOffice Base

Доброго времени суток, любители OpenOffice! Копаясь в интернете недавно наткнулся на ресурс showMeDo Где на глаза попались видеоуроки по OpenOffice Base: Creating the DataBase Уроки можно просматривать прямо с сайта, а можно и скачать предварительно зарегистрировавшись, формат видео файлов flv, версия Openffice которая представлена в уроках 2-ая (хотя можно практиковаться и с 3-ей), язык английский (но видео материал достаточно информативный), всего представлено 14 уроков от создания таблиц до формирования отчетов.

Для желающих скачать все уроки за 3 раза: представляю ссылки на закачку:
Файл 1 (26.88 MB), Файл 2 (21.3 MB), Файл 3 (18.75 MB)
Читать далее

четверг, 19 марта 2009 г.

Расширение адресной книги (ThunderBird)

Раньше я часто ездил в командировки и как по традиции обменявшись электронными адресами переписывался с вновь познакомившимися сотрудниками. Сказать о своей памяти что она фотографическая не могу, и в связи с этим было принято решение добавить к адресу электронной почты фотокарточку идентифицирующую абонента. Порывшись в адресной книге ThunderBird ничего подходящего не нашел, поэтому стал подбирать расширение для своей адресной книги. Большое спасибо сайту: www.mozilla.ru в котором нашел ответ на свой вопрос. Данное расширение Находится по адресу: http://www.nic-nac-project.de/~kaosmos/morecols-en.html называется: MoreFunctionsForAddressBook.

Установив его вы увидите, что в личной карточке адресата появлись новые вкладки:


Последняя вкладка нам как раз и нужна нажав кнопку "Добавить/Изменить" можно поместить фотографию владельца электронного адреса. Автор также сообщает: "В настоящий момент, расширение не изменяет размеры фотографий, таким образом я предлагаю, чтобы Вы не использовали фотографию с с высоким разрешением, во избежании, того что большой объем возможно будет тормозить работу ThunderBird".
Воспроизведение фотографий можно увидеть непосредственно в адресной книге выбрав адрес абонента и просмотрев его личную карточку.

ОС: Win2003, WinXP
ThunderBird: 2.0.0.21
MoreFunctionsForAddressBook: 0.5.5.1


Читать далее

понедельник, 16 марта 2009 г.

Работа с tar-файлами в Python

Автор: Adam Zajac
Содействие:
Последняя ревизия: 2007.09.08


Разрешается копировать, распространять или изменять (без изменения глав статьи, а также вставки обложек с тыльной и обратной стороны текста)данный документ, в соответствии с лицензией GNU о Свободной Документации (версия 1.2 или более поздняя версия, изданная Фондом бесплатного программного обеспечения). Копия лицензии находится по адресу http://www.gnu.org/copyleft/fdl.html.

Работа с Файлами Tar в Питоне
1. Вступление
1.a. Дополнительное чтение
2. Обучение
2.a. Добавление файлов
2.b. Информация о файле
2.c. Извлечение файлов
3. Примеры
3.a. Архивирование каталога
4. Распространение
4.a. Удаление файлов



Вступление

"tar" является форматом архивирования, который стал довольно популярным в мире open source. Его задача: связывать несколько файлов в один файл. Tar-формат разрабатывался для создания архивов на магнитной ленте. На сегодняшний день данный формат чаще всего можно встретить в использовании дистрибутивов исходного кода или в использовании резервных копий данных. В большинстве дистрибутивов Linux(в стандартной установке) имеются инструменты для создания и распаковки tar-файлов.


В стандартную библиотеку Python'а включен модуль, который позволяет легко создавать и извлекать tar-архивы. А также примеры того, как люди могли бы использовать такие функциональные возможности: как программирование обычного скрипта для резервного хранения или скрипта для создания промежуточной архивации личных проектов.

Дополнительное чтение

В данном документе имеется значительная информация о файлах tar и модуле Python'а — tarfile. В дополнение к этому документу Вы можете почитать следующие ресурсы:

Wikipedia: tar file
Python Library Reference 12.5: tarfile


Обучение

Данная обучающая программа, направлена на то, чтобы изучить три вещи: как добавить файлы к архиву, как просмотреть информацию о файлах в архиве, и как извлечь файлы из архива.


Добавление файлов


Изначально необходимо импортировать tarfile-модуль. Затем необходимо создать вызов объекта TarFile. Данный - объект имеет специальные функции для взаимодействия tar-файлом. В нашем случае, мы открываем файл "archive.tar.gz". Отметьте, что режим - "w:gz", который открывает файл записи с gzip сжатием. Как обычно, параметр "w" перезаписывает архив заново без сохранения предыдущих данных. Если tarfile уже существует, используйте параметр "a", чтобы добавить файлы конец архива (Заметка: Вы не можете использовать режим 'a:gz', вместо этого необходимо писать: 'a' или 'a:'.

Создание TarFile-Объекта:

>>> import tarfile
>>> tar = tarfile.open("archive.tar.gz", "w:gz")
>>> tar
Результат:<tarfile.TarFile object at 0x2af77c060990>

Добавить файлы к архиву достаточно просто. Если вы хотите записать в архив файл под другим именем, используйте опцию arcname.



Добавление файлов в архив


>>> tar.add("file.txt")
>>> tar.add("file.txt", arcname="new.txt")


Добавление директорий работает таким же образом. Отметьте, что по умолчанию каталог будет добавлен рекурсивно: каждый файл и папка внутри него будут включены. Данное поведение может быть изменено установкой параметра recursive равное False.


Добавление директории к архиву


>>> tar.add("docs/")
>>> tar.add("financial/", recursive=False)

Чтобы архив функционировал правильно, убедитесь, что Вы закрыли TarFile-объект.

Закрытие TarFile-объекта

>>> tar.close()

Информация о файле

tarfile-модуль может показать общую информацию о содержании tar-файла. Также имеется возможность получить доступ к каждому пункту объекта TarInfo. Например, функция getmembers() возвратит список всех объектов TarInfo в tar-файле:


Список объектов TarInfo


>>> import tarfile
>>> tar = tarfile.open("archive.tar.gz", "r")
>>> members = tar.getmembers()
>>> members
Результат:[<TarInfo 'text.txt' at 0x2b0b73e46a90>, <TarInfo 'text2.txt' at 0x2b0b73e46ad0>]



Объект TarInfo содержит методы запросов. Ниже представлены примеры работы с данными методами. Полный список можно найти здесь

TarInfo информация

>>> members[0].name
Результат:'text.txt'
>>> members[0].isfile()
Результат:True

Извлечение Файлов

Извлечение содержимого архива, очень простой процесс. Извлечение всего tar-файла, осуществляется с помощью функции extractall(). Данная функция извлечет файл в текущей рабочей директории. Также можно определить путь для разархивирования файлов в другом месте.


Извлечение полного содержимого tar-файла


>>> import tarfile
>>> tar = tarfile.open("archive.tar.gz", "r")
>>> tar.extractall()
>>> tar.extractall(r"c:\temp")


Когда необходимо извлечь определенные файлы, используйте функцию extract()


Извлечение единственного файла из tar-архива


>>> import tarfile
>>> tar = tarfile.open("archive.tar.gz", "r:gz")
>>> tar.extract("text.txt")
>>> tar.extract("text.txt", r"c:\temp")


Также Вы должны знать, что извлеченеие файлов из архива может повлият на безопасность ваших данных. А именно, tar-архив может быть разработан, так что при извлечении из него, он может переписать файлы находящиеся за пределами текущего рабочего каталога (/etc/passwd, например). Никогда не извлекайте данные из tar-архива как root-пользователь, если Вы не доверяете этому архиву.



Примеры

Архивирование Директории

archiver.py

import os
import tarfile

directory = os.getcwd()
contents = os.listdir(directory)
tar = tarfile.open("backup.tar.gz", "w:gz")

for item in contents:
tar.add(item)

tar.close()

Распространение
Удаление файлов

К сожалению tarfile-модуль не содержит функции для удаления элементов из архива. Предполагается, что виной тому были лентопротяжные устройства, у которых не было возможности, двигаться в прямом и обратном направлении для того чтобы считать файл из архива, и затем удалить его. (пост под ссылкой объясняет более подробно почему не было необходимости удаления файлов из tar-архива). Однако, другие программные средства имеют возможность удалять данные из tar-архива.


Следующий код использует популярные GNU tar-программы, который идут с большинством дистрибутивов Linux. В родной документации tar программы имеется флаг "--delete" который используется для удаления файлов из архива, заметьте, что они предупреждают, чтобы не использовать его на фактическом лентопротяжном устройстве. Естественно использование внешней программы делает код гораздо менее переносным, хотя данный способ является подходящим для создания личных скриптов.


Удаление элемента из архива с помощью импорта в скрипт команд tar-программы


import os
def remove(archive, unwanted):
    external = os.popen("c:\\gnuwin32\\bin\\tar.exe --version")
    x = external.read()
    external.close()
    if x[:13] == "tar (GNU tar)":
        command = "c:\\gnuwin32\\bin\\tar.exe --delete --verbose --file=%s %s" % (archive, unwanted)
        output = os.popen(command)
        y=output.read()
        output.close()
    else:
        print "Ошибка: Не могу удалить файл из tar-архива без GNU tar-программы."
        output = ""
    return output
remove("backup.tar", "archive.tar.gz")


Все скрипты были опробованы в Python 2.5.2 под ОС Win2003 и WinXP. Для работы с последним скриптом была установлена tar-программа в каталог c:\gnuwin32. Также последний скрипт работает только с файлами tar, но никак ни с tar.gz или tar.bz2.

Источник: scribd

Читать далее