Быстрый в изучении - мощный в программировании
Скрипт ИНВЕСТОР на Python

Попробуйте себя в качестве инвестора имея в помощники мощный алгоритм советника на Python...

Все уроки по PyQt5

PyQt5 реализован как комплект Python-модулей. Он включает в себя около 620 классов и 6000 функций и методов...

Скрипт отправки SMS через Python

Была задача отправить SMS-ки большому списку номеров телефона с уточнением цены за всю рассылку "До" ее отправки...

Python для начинающих

Подписаться на эту рубрику по RSS

Обучающие статьи программированию на Python. Пишем от простых программ до более сложных и изучаем мощный язык программирования Python.

SQLite python

Для создания и открытия базы данных используется функция connect(). Функция имеет следующий формат:

connect(database[, timeout][, isolation_level][, detect_types][, factory])

В параметре database указывается абсолютный или относительный путь к базе данных. Если база данных не существует, то она просто открывается без удаления имеющихся данных. Вместо пути к базе данных можно указать значение :memory:, которое означает, что база данных будут удалены.

Все остальные параметры являются необязательными и могут быть указаны в произвольном порядке путем присвоения значения названию параметра. Необязательный параметр timeout задает время ожидания снятия блокировки с открываемой базы данных. По умолчанию значение параметра timeout равно пяти секундам. Предназначение остальных параметров мы рассмотрим немного позже.

Далее...

SQLite Python

В предыдущих статьях мы рассматривали работу с файлами и научились сохранять объекты с доступом по ключу с помощью модуля shelve. При сохранении объектов этот модуль использует возможности модуля pickle для сериализации объекта и модуль anybm для записи получившейся строки по ключу в файл. Если необходимо сохранять в файл просто строки, то можно сразу воспользоваться модулем anybm. Однако если объем сохраняемых данных велик и требуется удобный доступ к ним, то вместо этого модуля лучше использовать базы данных.

Начиная с версии 2.5, в состав стандартной библиотеки Python входит модуль sqlite3, позволяющий работать с базой данных SQLite. Для использования этой базы данных нет необходимости устанавливать сервер, ожидающий запросы на каком-либо порту, т.к. SQLite напрямую работает с файлом базы данных.

Далее...

python sqlite3

Модуль sqlite3, входит в состав стандартной библиотеки Python, начиная с версии 2.5, и в дополнительной установке не нуждается. Если необходимо получить доступ к SQLite в предыдущих версиях Python, то следует воспользоваться модулем pysqlite. Этот модуль не входит в состав стандартной библиотеки, поэтому его придется устанавливать отдельно.

Для работы с базами данных в языке Python существует единый интерфейс доступа. Все разработчики модулей, осуществляющих связь базы данных с Python, должны придерживаться спецификации DB-API (DataBase Application Program Interface). Это спецификация более интересна для разработчиков модулей, чем для прикладных программистов, поэтому мы не будем ее подробно рассматривать.

Модуль sqlite3 поддерживает спецификацию DB-API 2.0, а так же предоставляет некоторые нестандартные возможности. Поэтому, изучив методы и атрибуты этого модуля, вы получите достаточно подробное представление о спецификации DB API 2.0 и сможете в дальнейшем работать с другой базой данных. Получить номер спецификации, поддерживаемой модулем, можно с помощью атрибута apilevel:

Далее...

создание базы sqlite

Попробуем создать новую базу данных в SQLite. Запускаем командную строку. Для этого в меню Пуск выбираем пункт Выполнить. В открывшемся окне набираем команду cmd и нажимаем кнопку ОК. Откроется черное окно, в котором будет приглашение для ввода команд. Переходим в папку C:\book, выполнив команду:

cd C:\book

В командной строке должно быть приглашение:

C:\book

По умолчанию в консоли используется кодировка cp866. Чтобы сменить кодировку на cp1251, в командной строке вводим команду:

chcp 1251

Далее...

Модуль shelve в Python

Модуль shelve Python позволяет сохранять объекты под определенный ключом (задается в виде строки) и определяется интерфейс доступа, сходный со словарями. Для сериализации объекта используется возможности модуля pickle, а чтобы записать получившуюся строку по ключу в файл , применяется модуль anydbm. Все эти действия модуль shelve производит незаметно для нас. Чтобы открыть файл с базой объектов, используется функция open(). Функция имеет следующий формат:

open(<Путь к файлу>[, flag="c"[, protocol=None[, writeback=False]]])

В необязательном параметре flag можно указать один из режимов открытия файла:

  • r - Только для чтения
  • w - чтение и запись
  • c - чтение и запись (значение по умолчанию). Если файл не существует, он будет создан.
  • n - чтение и запись. Если файл не существует, он будет создан. Если файл существует, он будет перезаписан.

Функция open() возвращает объект, с помощью которого производится дальнейшая работа с базой данных. Этот объект имеет следующие методы:

close() - закрывает файл с базой данных. В качестве примера создадим файл и сохран6им в нем список кортежа.

>>> import shelve
>>> db = shelve.open("file2.txt")
>>> db['language'] = ['ru', 'rn', 'ua']
>>> db['colors'] = ['red', 'blue', 'green']
>>> db['language'], db['colors']
(['ru', 'rn', 'ua'], ['red', 'blue', 'green'])
>>> db.close()
Далее...

Как защитить Python-код

Многие задаются вопросом - как скрыть исходный код написанных на питоне скриптов, чтобы затем можно было например продавать эти скрипты. В своё время и мы задались этим вопросом, в следствии чего со временем нашли его решение.

Можно было бы просто отдавать клиентам байт-код, который создает python при первом запуске скрипта. Например, запустили test.py, рядом появился test.pyc, его и продаем. Однако в сети есть скрипты, которые восстанавливают из него исходный код с точностью до байта.

Поэтому, чтобы закрыть сорцы скрипта - его надо скомпилировать. Для этого, с помощью расширения cython его можно перевести в Си код, который и скомпилировать обычными инструментами, вроде make.

Рассмотрим решение пошагово:

- Конвертируем python-скрипт в Си:

cython -3 СКРИПТ.py

Получаем СКРИПТ.c - это исходный код python-модуля, который выполняет то же самое что и питон-скрипт.

Далее...

Права доступа к файлам и каталогам

В операционной системе Unix для каждого объекта (файла или каталога) назначаются права доступа для каждой разновидности пользователей - владельца, группы и прочих. Могут быть назначены следующие права доступа: чтение, запись, выполнение.

Права доступа обозначаются буквами:

r - файл можно читать, а содержимое каталога можно просматривать.

w - файл можно модифицировать, удалить и переименовать, а в каталоге можно создать или удалить файлы. Каталог можно переименовать или удалить.

x - файл можно выполнить, а в каталоге можно выполнить операции над файлами, в том числе производить поиск файлов в нем.

Права доступа к файлу определяются записью типа:

-rw-r--r--

Далее...

Методы для работы со словарями

Для работы со словарями предназначены следующие методы:

keys() и values() - позволяют получить список всех ключей и значений соответственно:

>>> d = {'a': 1, 'b': 2}
>>> k = d.keys(); v = d.values()
>>> print k, v
['a', 'b'] [1, 2]

Можно также воспользоваться методами iterkeys() и itervalues(), которые возвращают не список ключей и значений, а итератор. Пример:

>>> d = {'a': 1, 'b': 2}
>>> for i in d.iterkeys(): print i,
a b
 
>>> for i in d.itervalues(): print i,
1 2

Далее...

Перебор элементов словаря

Перебрать все элементы списка можно благодаря циклу for, но словари Python не являются последовательностями. В качестве примера выведем элементы словаря двумя методами. Первый способ использует метод keys(), возвращающий список всех ключей словаря. Второй способ появился в последних реализах Python. В этом случае мы просто указываем словарь в качестве параметра. На каждой интерации цикла будет возвращаться ключ, с помощью которого внутри цикла можно получить значение, соответствующее этому ключу.

Перебор элементов словаря

# -*- coding: utf-8 -*-
cars = {
    'BMW': 'x5',
    'Mercedes-Benz': 'E220',
    'Audi': 'Q7'
}
 
for key in cars:
    print "%s -> %s" % (key, cars[key])
 
print '-' * 15
print 'Пример 2'
print '-' * 15
 
for key in cars.keys():
    print "%s -> %s" % (key, cars[key])

Далее...

Создание и запуск сайтов на Python

Язык программирования Python широко применяется для создания web-сайтов и используется для решения различных проблем и задач которые возникают перед программистом. Во-первых, код на языке программирования Python предоставляет простые и удобные методы для генерирования набора статических HTML-страниц, которые будут обслуживаться веб-сервером. Например, сценарии может принимать некоторое содержимое и добавлять к нему элементы оформления, типичные для веб-сайта (панель навигации, боковую панель, рекламу, стили и так далее). Все это фактически сводится к работе с файлами и обработке текста.

Во-вторых, скрипты написанные на языке программирования Python могут применятся для создания динамических сайтов т.е. в связке MySQL + JavaScript + Ajax + Python. Сайт может работать на базе обычного веб сервера Nginx или Apache и отправлять данные из форм сценарию на языке Python для обработки и возвращение результата работы. В данном случае Python используется как обработчик данных из форм.

Далее...