12 сент. 2014 г.

Подключение библиотек в Змие и нетривиальный тестовый пример


Можно использовать в проекте только стандартные либы(библиотека файлов).

Зависит от задачи и требований.
Пункт 1. Например, скачать файл из Интернет, используя urllib. (документация здесь Urllib). Чтобы протестировать её наличие, можно ввести код применяющий функции из неё. (Пример 1)
Пример 1. Позволяет скачать и сохранить файл из Интернет:
#Подключение библиотек
import urllib
from urllib.request import urlopen

#функция скачивания файла
#url - адрес
#numf - имя для сохранения скачиваемого файла
def addinFile(url, i):
    urllib.request.urlretrieve(url, i+".html")

#вызов ф-ции
url = "http://"+"Адрес где лежит файл"+"/сам файл" 
numf="download"
addinFile(url,numf)

Но чаще программные проекты требуют расширения возможностей программирования. А значит и подключения иных библиотек. Если библиотека не найдена, то появится сообщение об ошибке. (Рисунок 1)

Рисунок 1. Сообщение об ошибке, отсутствует библиотека Chilkat.
Достойна внимания эта строка - ImportError: No module named 'Название библиотеки'.

Пункт 2.  Как установить либу в Python 3?
По обыкновению, документация о процессе установки описана в Readme или Install_Instruction, присутствующих в папке с файлами библиотеки. Встречаются следующие два вида установки:
а) Иногда можно просто скачать и скопировать файлы либы в папку Python/site_package Для примера, была взята либа Chilkat Crypt, позволяющая выполнять операции шифрования.(конечно, Chilkat - это большой набор библиотек)
Проходит это так:
  1. Скачать пакет Chilkat.
  2. Сохранить и распаковать в Python/site_package.
  3. Проверить работоспособность. (Пример 2)
  4. Сверить результат: 7d5df2f48eaf69228e88b9d6714c22cc09d3ed24 
Пример2. Позволяет скачать и сохранить файл из Интернет:
#Подключение библиотек
import sys
import chilkat
#Подключение модуля шифрования
crypt = chilkat.CkCrypt2()

#  Версия библиотеки триальна, действует 30 дней
success = crypt.UnlockComponent("30-day trial")
if (success != True):
    print(crypt.lastErrorText())
    sys.exit()
#Текст с которого берется хэш
content = "Knock Knock, Trick or Treat?"

#Эта же строка в hex
crypt.put_EncodingMode("hex")

#Заведение хэша SHA-1
crypt.put_HashAlgorithm("sha-1")
hashStr = crypt.hashStringENC(content)

print(hashStr)

б) В некоторых случаях, после распаковки и копирования либы, требуется выполнить команду в cmd:
 python setup.py install 
Такое потребуется, чтобы установить (шикарный) пакет xlrd, позволяющий читать данные из Microsoft Excel файлов.
  1. Скачать пакет xlrd. Потребуется найти на сайте файл расширения tar - распаковывается архиватором. (Рисунок 2)
  2. Сохранить и распаковать в Python/site_package.
  3. Произвести установку, находясь в папке с библиотекой. (Рисунок 3) 
  4. Проверить работу подключенной либы.  (Пример 3)
Рисунок 2. Страница сайта.
Подключение библиотек в Змие и нетривиальный тестовый пример


Рисунок 3. Консоль Win7. Список файлов в распакованном архиве и установка либы.
xlrd
Пример 3. Позволяет открыть таблицу, найти столбец IP и вывести присутствующие элементы.
Главный main-файл. Для запуска.
import xlrd
#функция в отдельном файле, лежит там же где и main проги
import procFile

def main():
    #Открыть xls 
    nametable="test.xls"
    workbook = xlrd.open_workbook(nametable)
    #Выбрать страницу в таблице
    namepage="2014"
    worksheet = workbook.sheet_by_name(namepage)
    #Запуск функции по выгрузке и обработке данных
    procFile.searchIPinFile(worksheet)

main()
procFile - сама функция в отдельном файле procFile.py
import xlrd

def searchIPinFile(worksheet):
    num_rows = worksheet.nrows - 1
    num_cells = worksheet.ncols - 1
    curr_row = -1
    i=0
    #Проход по строкам
    while curr_row < num_rows:
        curr_row += 1
        row = worksheet.row(curr_row)
        curr_cell = -1
        while curr_cell < num_cells:
            i=i+1
            curr_cell += 1
            cell_type = worksheet.cell_type(curr_row, curr_cell)
            cell_value = worksheet.cell_value(curr_row, curr_cell)
            if cell_value=="IP":
                while curr_row < num_rows:
                    curr_row += 1
                    row = worksheet.row(curr_row)
                    cell_value2 = worksheet.cell_value(curr_row, curr_cell)
                    #Вывод значения ячейки
                    if cell_value2!="":
                            print ('Row:', cell_value2)
                    else:
                        curr_row += 1





Послесловие. "Грязный хак" по продолжению использования Chilkat по истечении 30 дней. Известный способ со времен первых версий Каспера: Перевод системного времени назад.


1 комментарий:

  1. What is a Coin Casino?
    It 코인카지노 먹튀 놀검소 is a website and a gambling operator. In general, the term coin casino refers to a gambling operator and does not mean that a gambling operator is an individual

    ОтветитьУдалить