Телефонуйте » (+38) 096 227 41 41

В довіднику зібрана колекція з 50 дорогоцінних каменів, щоб закріпити ваші успіхи у вивченні Python.

Основи

1. Запуск сценаріїв Python

На більшості UNIX-систем, можна запустити сценарії Python з командного рядка, наприклад, для сценарію mypyprog.py:

python mypyprog.py

2. Запуск програм на Python з інтерпретатора

Інтерактивний інтерпретатор Python дозволяє вам легко спробувати перші кроки в програмуванні і використанні всіх команд Python. Ви просто вводите кожну команду в командному рядку (>>>), одну за іншою і негайно отримуєте відповідь.
Інтерпретатор Python запускається за допомогою команди python:

python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)[GCC 4.3.3] on linux2
Type “help”, “copyright”, “credits”or “license” for more information.
>>> <тут введіть команду>

У цьому довіднику весь код, який починається зі знаку >>> означає, що використовується командний рядок Python.
Також важливо пам'ятати, що Python сприймає відступи (tabs) дуже серйозно – тому, якщо ви отримуєте будь-які помилки зі згадуванням відступу, виправіть інтервал табуляції.

3. Динамічне введення

У Java, C++ та в інших статично типізованих мовах, необхідно вказати тип даних, що повертаються і аргументи функції. З іншого боку, Python є динамічною універсальною мовою. В Python ви ніколи не повинні явно вказувати тип будь-яких даних. Виходячи з того, яке значення привласнюєте, Python буде відстежувати тип даних усередині.

4. Оператори Python

Python використовує повернення каретки для розділу операторів, а також двокрапку і відступи для поділу коду на блоки. Більшість компільованих мов програмування, таких як C і C++, використовують крапку з комою для розділення операторів і фігурні дужки для окремих блоків коду.

5. Оператори == і =

Python використовує '==' для порівняння і '=' для присвоювання. Python не підтримує вбудовані присвоювання, тому немає жодного ризику випадково присвоїти значення, коли ви насправді хочете, його порівняти.

6. Об’єднання рядків

Ви можете використати ‘+’ для об’єднання рядків.

>>> print (‘Mikro’+’Tik’)
MikroTik

7. Метод __init__

Метод __init__ запускається, як тільки створюється примірник об'єкту класу. Метод корисний, коли хочете зробити будь-яку ініціалізацію зі своїм об'єктом. Метод __init__ аналогічний конструктору в C++, C # або Java.
Приклад:

class Person:
def __init__(self, name):
       self.name = name
def sayHi(self):
       print (‘Hello, my name is’, self.name)
p = Person(‘Taras’)
p.sayHi()

Виведення:

python initmethod.py
Hello, my name is Taras

8. Модулі

Щоб зберегти свої програми керованим по мірі того, як вони ростуть в розмірах, ви можете розбити їх на кілька файлів. Python дозволяє помістити кілька визначень функцій в файл і використовувати їх як модулі, які можна імпортувати в інші сценарії і програми. Ці файли повинні мати розширення .py.
Приклад:

# файл my_function.py
def minmax(a,b):
if a <= b:
min, max = a, b
else:
min, max = b, a
return min, max

Використання модуля:

import my_function
x,y = my_function.minmax(25, 6.3)

9. Визначені в модулі імена

Приклад:

Вбудована функція ‘dir()’ може бути використана, щоб з'ясувати, які імена визначає модуль. Повертається сортований список рядків.

>>> import time
>>> dir(time)
[‘__doc__’, ‘__file__’, ‘__name__’,
‘__package__’, ‘accept2dyear’,
‘altzone’, ‘asctime’, ‘clock’,
‘ctime’, ‘daylight’, ‘gmtime’,
‘localtime’, ‘mktime’, ‘sleep’,
‘strftime’, ‘strptime’, ‘struct_
time’, ‘time’, ‘timezone’, ‘tzname’,
‘tzset’]

10. Внутрішня документація модуля

Ви можете побачити внутрішню документацію (якщо така є) для імені модуля, переглядаючи .__doc__.
Приклад:

>>> import time
>>> print time.clock.__doc__
clock() -> число у форматы з плаваючою комою

Цей приклад повертає час CPU або реальний час з моменту запуску процесу або після першого виклику clock(). Точність така ж, як і для системних записів.

11. Передача аргументів в сценарій Python

Python дозволяє отримати доступ до всього, що ви передали в сценарій при його виклику. Контент «командного рядка» зберігається в списку sys.argv.

import sys
print sys.argv

12. Завантаження модулів або команд при запуску

Ви можете завантажити готові модулі або команди при запуску будь-якого скрипта Python за допомогою змінної оточення $PYTHONSTARTUP. Ви можете встановити змінну оточення $PYTHONSTARTUP в файлі, який містить інструкції по завантаженню необхідних модулів або команд.

13. Перетворення рядка в об’єкт дати

Ви можете використати функцію ‘DateTime’ для конвертування рядка в об’єкт дати.
Приклад:

from DateTime import DateTime
dateobj = DateTime(string)

14. Перетворення списку в рядок для відображення

Ви можете перетворити список в рядок одним із таких способів.
1-й метод:

>>> mylist = [‘spam’, ‘ham’, ‘eggs’]
>>> print (‘, ‘.join(mylist))
spam, ham, eggs

2-й метод:

>>> print (‘\n’.join(mylist))
spam
ham
eggs

15. Автозаповнення інтерпретатора Python

Ви можете отримати автоматичне заповнення всередині інтерпретатора Python, додавши наступні рядки в ваш файл .pythonrc (або в свій файл для Python для читання під час запуску):

import rlcompleter, readline
readline.parse_and_bind(‘tab: complete’)

Це дозволить Python при натисканні клавіші Tab робити завершення частково набраної функції, метода та імен змінних.

16. Інструмент документації Python

Ви можете запустити графічний інтерфейс для пошуку документації Python скориставшись командою:

pydoc -g

Вам знадобиться пакет python-tk для цієї функції.

17. Сервер документації Python

Ви можете запустити сервер HTTP на вказаному порту локальної машини, що забезпечить доступ в чудовому вигляді до всієї документації Python, включаючи документацію для модулів сторонніх розробників.

pydoc -p <portNumber>

18. Програмне забезпечення для розробників на Python

Є багато інструментів, щоб допомогти розробникам на Python. Ось кілька важливих з них:
IDLE: Вбудований в Python IDE, з функцією автозаповнення, з підписаним спливаючим вікном допомоги та редагування файлів.
IPython: Інше розширення оболонки Python з вкладки-завершенням та іншими функціями.
Eric3: A IDE GUI Python з автозавершенням, класом браузера, вбудованою оболонкою і відладчиком.
WingIDE: Комерційний IDE Python з безкоштовною ліцензією доступний для розробників з відкритим вихідним кодом у всьому світі.

Вбудовані модулі

19. Виконання функцій в момент зупинки інтерпретатора Python

Можете використати модуль ‘atexit’ для виконання функцій в момент зупинки інтерпретатора Python.
Приклад:

def sum():
       print(4+5)
def message():
       print(“Executing Now”)
import atexit
atexit.register(sum)
atexit.register(message)

Виведення:

Executing Now
9

20. Перетворення цілих чисел в двійкові, в hex- і восьмеричний код

Python надає простий у використанні функції - bin(), hex() і oct() - для перетворення цілого числа в двійкове, hex- і восьмеричний формати, відповідно.
Приклад:

>>> bin(24)
‘0b11000’
>>> hex(24)
‘0x18’
>>> oct(24)
‘030’

21. Перетворення будь-яких символів в UTF-8

Можете використати наступну функцію для перетворення будь яких символів у формат UTF-8:

data.decode(“input_charset_here”).
encode(‘utf-8’)

22. Видалення дублікатів із списків

Якщо хочете видалити дублікати із списку, просто вставте кожний елемент в dict як ключ (в прикладі з ‘none’ як значення) і потім перевірте з dict.keys().

from operator import setitem
def distinct(l):
       d = {}
       map(setitem, (d,)*len(l), l, [])
       return d.keys()

23. Цикл do-while

Оскільки Python не має конструкцій циклу do-while або do-until (поки що), можете використати наступний метод для отримання подібного результату:

while True:
       do_something()
       if condition():
             break

24. Визначення платформи системи

Для виконання функцій конкретної платформи дуже корисно виявити платформу, на якій працює інтерпретатор Python. Ви можете використати 'sys.platform', щоб дізнатися поточну платформу.
Приклад:

На Ubuntu Linux

>>> import sys
>>> sys.platform
‘linux2’

На Mac OS X Snow Leopard

>>> import sys
>>> sys.platform
‘darwin’

25. Відключення і включення «збору сміття»

Іноді ви можете включити або відключити «збирач сміття» під час виконання. Ви можете використовувати модуль 'gc', щоб включити або відключити «збір сміття».
Приклад:

>>> import gc
>>> gc.enable <вбудована функція дозволена>
>>> gc.disable <вбудована функція заборонена>

26. Використання модулів на C для кращої продуктивності

Багато модулів Python поставляються з аналогами модулів C. За допомогою цих модулів C можна отримати значний приріст продуктивності в складних додатках.
Приклад:

cPickle instead of Pickle, cStringIO
замість StringIO.

27. Обчислення максимуму, мінімуму і суми з будь-якого списку або ітерактивно

Можете використати наступні вбудовані функції:

max: Повертає найбільший елемент із списку.
min: Повертає найменший елемент із списку.
sum: Функція повертає суму всіх елементів списку. Можна використати необов'язковий другий аргумент: значення, з якого має починатися додавання (за замовчуванням 0).

28. Подання дробних чисел

Примірник дробних чисел може бути створений за допомогою наступної конструкції:

Fraction([numerator[,denominator]])

29. Виконання математичних операцій

Модуль ‘math’ надає безліч математичних функцій. Вони працюють для цілих чисел і чисел з плаваючою точкою, крім комплексних чисел. Для комплексних чисел використовується окремий модуль, який називається ‘cmath’.
Приклад:

math.acos(x): Повертає arccos від x.
math.cos(x): Повертає cos від x.
math.factorial(x) : Повертає x-факторіал.

30. Робота з масивами

Модуль ‘array’ забезпечує ефективний спосіб використання масивів в ваших програмах. Модуль ‘array’ ' визначається введенням наступного: array(typecode [, initializer])
Після того, як ви створили об'єкт масиву, скажімо, myarray, ви можете застосувати купу методів до нього. Ось кілька важливих з них:

myarray.count(x): Повертає кількість значень x в масиві.
myarray.extend(x): Визначає x як кінець масиву.
myarray.reverse(): Обертає порядок в масиві.

31. Сортування складових списку

Модуль ‘bisect’ робить можливим дуже легко отримати списки в будь-якому порядку. Можете використати наступні функції для впорядковування списків:

bisect.insort(list, item [, low[, high]])

Вставка елемента в список в відсортованому порядку. Якщо елемент вже є в списку, новий запис вставляється праворуч від будь-якого з існуючих записів.

bisect.insort_left(list, item [, low[, high]])

Вставки елемента в список в відсортованому порядку. Якщо елемент вже є в списку, новий запис вставляється зліва від будь-яких існуючих записів.

32. Використання пошуку на основі регулярних виразів

Модуль ‘re’ робить дуже простим у використанні пошук на основі регулярних виразів. Можете використати функцію ‘re.search()’  на основі регулярних виразів. Перевірте наведені нижче приклади.
Приклад:

>>> import re
>>> s = “Adam is a bad boy”
>>> if re.search(“A”, s): print(“Match!”) # char literal
...
Match!
>>> if re.search(“[@A-Z]”, s): print (“Match!”) # char class
... # match either at-sign or capital letter
Match!
>>> if re.search(“\d”, s): print(“Match!”) # digits class
...

33. Робота з форматом стиснення bzip2 (.bz2)

Можете використати модуль ‘bz2’ для читання та запису даних за допомогою алгоритму стиснення bzip2.

bz2.compress() : Для стиснення bz2
bz2.decompress() : Для витягування bz2

Приклад:

# Файл: bz2-example.py
import bz2
MESSAGE = “Adam is a bad boy”
compressed_message = bz2.
compress(MESSAGE)
decompressed_message = bz2.
decompress(compressed_message)
print (“original:”, repr(MESSAGE))
print (“compressed message:”, repr(compressed_message))
print (“decompressed message:”, repr(decompressed_message))

Вихід:

python bz2- example.py
original: ‘Adam is a bad boy’
compressed message: ‘BZh91AY&SY\xc4\x0fG\x98\x00\x00\x02\x15\x80@\x00\x00\x084%\x8a \x00”\x00\x0c\x84\r\x03C\xa2\xb0\xd6s\xa5\xb3\x19\x00\xf8\xbb\x92)\xc2\x84\x86 z<\xc0’
decompressed message: ‘Adam is a bad boy’

34. Використання бази даних SQLite з Python

SQLite швидко стає дуже популярною вбудованою базою даних через свою нульову необхідність конфігурації і чудові рівні продуктивності. Можете використати модуль 'sqlite3', щоб працювати з базами даних SQLite.

Приклад:

>>> import sqlite3
>>> connection = sqlite.connect(‘test.db’)
>>> curs = connection.cursor()
>>> curs.execute(‘’’create table item
... (id integer primary key, itemno text unique, ... scancode text, descr text, price real)’’’)
<sqlite3.Cursor object at 0x1004a2b
30>

35. Робота з zip-файлами

Можете використати модуль ‘zipfile’ для роботи з zip файлами.

zipfile.ZipFile(filename [, mode [, compression [,allowZip64]]])

Відкрийте свій zip-файл, де файл може бути вказаний з шляхом до файлу (рядок) або файло-подібний об'єкт.

zipfile.close()¶

Закрийте файл архіву. Ви повинні викликати ‘close()’  перед виходом зі своєї програми або записи не будуть збережені.

zipfile.extract(member[, path[, pwd]])

Витягування елемента з архіву в поточний робочий каталог; ‘member’ має бути з повним ім'ям (або об'єкт zipinfo). Інформаційний файл витягується якомога точніше. ‘path’ вказує інший каталог для вилучення архіву. ‘member’ може бути ім'ям файлу або об'єктом zipinfo. ‘pwd’ є паролем, який використовується для зашифрованих файлів.

36. Використання спеціальних символів в UNIX-стилі для пошуку за іменами файлів

Можете використати модуль ‘glob’, щоб знайти всі шляхи до файлу, які збігаються з шаблоном відповідно до правил, що використовуються оболонкою UNIX. *,? і діапазони символів, вказані за допомогою [ ], будуть їм відповідати.
Приклад:

>>> import glob
>>> glob.glob(‘./[0-9].*’)
[‘./1.gif’, ‘./2.txt’]
>>> glob.glob(‘*.gif’)
[‘1.gif’, ‘card.gif’]
>>> glob.glob(‘?.gif’)
[‘1.gif’]

37. Виконання основних перацій з файлами (копіювання, видалення і перейменування)

Можете використати модуль 'shutil' для виконання основних операцій з файлами на високому рівні. Цей модуль працює зі звичайними файлами, але не буде працювати з такими спеціальними файлами, як pipes, блокові пристрої, і т.д.

shutil.copy(src,dst)

Копіювати файл src в файл або каталог dst.

shutil.copymode(src,dst)

Копіювати файл дозволів від src для dst.

shutil.move(src,dst)

Перемістити файл або каталог в dst.

shutil.copytree(src, dst, symlinks [,ignore]])

Рекурсивно скопіювати весь каталог в src.

shutil.rmtree(path [, ignore_errors [, onerror]])

Видалити весь каталог.

38. Виконання UNIX-команд із Python

Можете використати модуль команд для виконання команд UNIX. Це неможливо в Python 3 – замість цього вам треба використати модуль ‘subprocess’.
Приклад:

>>> import commands
>>> commands.getoutput(‘ls’)
‘bz2-example.py\ntest.py’

39. Читання змінної оточення

Можете використати модуль ‘os’, щоб зібрати інформацію про операційну систему для конкретної системи:
Приклад:

>>> import os
>>> os.path <module ‘posixpath’ from ‘/usr/lib/python2.6/posixpath.pyc’
>>>> os.environ {‘LANG’: ‘en_
IN’, ‘TERM’: ‘xterm-color’, ‘SHELL’:
‘/bin/bash’, ‘LESSCLOSE’:
‘/usr/bin/lesspipe %s %s’,
‘XDG_SESSION_COOKIE’:
‘925c4644597c791c704656354adf56d6-
1257673132.347986-1177792325’,
‘SHLVL’: ‘1’, ‘SSH_TTY’: ‘/dev/
pts/2’, ‘PWD’: ‘/home/kunal’,
‘LESSOPEN’: ‘| /usr/bin
lesspipe
......}
>>> os.name
‘posix’
>>> os.

40. Відправлення email

Можете використати модуль ‘smtplib’ для відсилання email за допомогою SMTP (Simple Mail Transfer Protocol) інтерфейсу клієнта.

smtplib.SMTP([host [, port]])

Приклад (відправлення email з використанням сервера Google Mail SMTP):

import smtplib
# Використовуйте власну поштову адресу
fromaddr = ‘This email address is being protected from spambots. You need JavaScript enabled to view it.
toaddrs = ‘This email address is being protected from spambots. You need JavaScript enabled to view it.
msg = ‘I am a Python geek. Here is the proof.!’
# Повноваження
# Використовуйте власні повноваження від Google Mail, коли запускаєте програму
username =‘This email address is being protected from spambots. You need JavaScript enabled to view it.
password = ‘xxxxxxxx’
# Актуальний сервер для відсилання пошти = smtplib.SMTP(‘smtp.gmail.com:587’)
# Google Mail використовує захищене SMTP-з’єднання
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()

41. Доступ до сервера FTP

‘ftplib’ є повноцінним клієнтським модулем FTP для Python. Для того, щоб встановити з'єднання з FTP, можете використати наступну функцію: ftplib.FTP([host [, user [, passwd [, acct [, timeout]]]]])
Приклад:

host = “ftp.redhat.com”
username = “anonymous”
password = “This email address is being protected from spambots. You need JavaScript enabled to view it.
import ftplib
import urllib2
ftp_serv = ftplib.FTP(host,username,password)
# Завантаження файла
u = urllib2.urlopen (“ftp://ftp.redhat.com/pub/redhat/linux/README”)
# Виведення контенту файла
print (u.read())

Вихід:

python
ftpclient.py

42. Запуск веб-сторінки з веб-браузером за замовчуванням

Модуль ‘webbrowser’ забезпечує зручний спосіб для запуску веб-сторінок за допомогою веб-браузер за замовчуванням.
Приклад (запуск google.co.uk за допомогою веб-браузера системи за замовчуванням):

>>> import webbrowser
>>> webbrowser.open(‘http://google.co.uk’)
True

43. Створення хешів для захисту

Модуль ‘hashlib’ підтримує алгоритми хешів для захисту, включаючи SHA1, SHA224, SHA256, SHA384, SHA512 і MD5.
Приклад (створення hex-дайджетів для заданого тексту):

>>> import hashlib
# sha1 Digest
>>> hashlib.sha1(“MI6 Classified Information 007”).hexdigest()
‘e224b1543f229cc0cb935a1eb959318ba1b20c85’
# sha224 Digest
>>> hashlib.sha224(“MI6 Classified Information 007”).hexdigest()
‘3d01e2f741000b0224084482f905e9b7b977a59b480990ea8355e2c0’
# sha256 Digest
>>> hashlib.sha256(“MI6 ClassifiedInformation 007”).hexdigest()
‘2fdde5733f5d47b67 2fcb39725991c89b2550707cbf4c6403e fdb33b1c19825e’
# sha384 Digest
>>> hashlib.sha384(“MI6 ClassifiedInformation 007”).hexdigest()
‘5c4914160f03dfbd19e14d3ec1e74bd8b99dc192edc138aaf7682800982488daaf540be9e0e50fc3d3a65c8b6353572d’
# sha512 Digest
>>> hashlib.sha512(“MI6 ClassifiedInformation 007”).hexdigest()
‘a704ac3dbef6e8234578482a31d5ad29d252c822d1f4973f49b850222edcc0a29bb890778aea807a0a48ee4ff8bb18566140667fbaf73a1dc1ff192febc713d2’
# MD5 Digest
>>> hashlib.md5(“MI6 ClassifiedInformation 007”).hexdigest()
‘8e2f1c52ac146f1a999a670c826f7126’

44. Генерування випадкових чисел

Можна використати модуль ‘random’ для генерування широкого спектру випадкових чисел. Найбільш часто використовується ‘random.seed([x])’. Він ініціалізує основний генератор випадкових чисел. Якщо х опущений або None, використовується поточний системний час; поточний системний час також використовується для ініціалізації генератора, коли модуль імпортується вперше.

45. Робота з файлами CSV (значення, розділені комами)

CSV файли дуже популярні для обміну даними в вебі. Використовуючи модуль ‘csv’, можете читати і записувати файли CSV.
Приклад:

import csv
# запис збережених даних у форматі розділених комою значень
writer = csv.writer(open(‘stocks.csv’, ‘wb’, buffering=0))
writer.writerows([(‘GOOG’, ‘Google, Inc.’, 505.24, 0.47,0.09),(‘YHOO’, ‘Yahoo! Inc.’, 27.38, 0.33,1.22),(‘CNET’, ‘CNET Networks, Inc.’, 8.62,-0.13, -1.49)])
# читання збережених даних, виведення статусного повідомлення
stocks = csv.reader(open(‘stocks.csv’, ‘rb’))
status_labels = {-1: ‘down’, 0:‘unchanged’, 1: ‘up’}
for ticker, name, price, change, pctin stocks:
       status = status_
       labels[cmp(float(change), 0.0)]
       print ‘%s is %s (%s%%)’ % (name, status, pct)

Модулі сторонніх розробників

46. Встановлення модулів сторонніх розробників за допомогою setuptools

‘setuptools’ є пакетом Python, який дозволяє завантажувати, будувати, встановлювати, оновлювати і деінсталювати пакети дуже легко.
Для використання ‘setuptools’ його треба інсталювати з вашого менеджера пакетного дистрибутива. Після інсталяції можете використати команду ‘easy_install’ для налаштування.
Приклад (встановлення simplejson за допомогою setuptools):

$ sudo easy_install simplejson
Searching for simplejson
Reading http://pypi.python.org/simple/simplejson/
Reading http://undefined.org/python /#simplejson
Best match: simplejson 2.0.9
Downloading http://pypi.python.org/packages/source/s/simplejson/simplejson-2.0.9.tar.gz #md5=af5e67a39ca3408563411d357e6d5e47
Processing simplejson-2.0.9.tar.gz
Running simplejson-2.0.9/setup.py-q bdist_egg --dist-dir /tmp/easy_
install-FiyfNL/simplejson-2.0.9/eggdist-tmp-3YwsGV
Adding simplejson 2.0.9 to easyinstall.pth file
Installed /usr/local/lib/python2.6/dist-packages/simplejson-2.0.9-py2.6-linux-i686.egg

47. Доступ до системних логів

Можете використати модуль ‘syslog’ для запису системних логів. ‘syslog’ працює як інтерфейс до обладнання бібліотеки UNIX syslog.
Приклад:

import syslog
syslog.syslog(‘mygeekapp: started logging’)
for a in [‘a’, ‘b’, ‘c’]:
     b = ‘mygeekapp: I found letter ‘+a
     syslog.syslog(b)
syslog.syslog(‘mygeekapp: the script goes to sleep now, bye,bye!’)

Вихід:

$ python mylog.py
$ tail -f /var/log/messages
Nov 8 17:14:34 ubuntu -- MARK --
Nov 8 17:22:34 ubuntu python:
mygeekapp: started logging
Nov 8 17:22:34 ubuntu python:
mygeekapp: I found letter a
Nov 8 17:22:34 ubuntu python:
mygeekapp: I found letter b
Nov 8 17:22:34 ubuntu python:
mygeekapp: I found letter c
Nov 8 17:22:34 ubuntu python:
mygeekapp: the script goes to sleep
now, bye,bye!

48. Генерування документів PDF

‘ReportLab’ є дуже популярним модулем для генеруванняr PDF з Python.
Виконайте наступні кроки для встановлення ReportLab

$ wget http://www.reportlab.org/ftp/ReportLab_2_3.tar.gz
$ tar xvfz ReportLab_2_3.tar.gz
$ cd ReportLab_2_3
$ sudo python setup.py install

Якщо встановлення завершилось успішно, то повинні побачити подібне повідомлення:

############SUMMARY INFO###########
###################################
#Attempting install of _rl_accel, sgmlop& pyHnj
#extensions from ‘/home/kunal/python/ReportLab_2_3/src/rl_addons/rl_accel’
###################################
#Attempting install of _renderPM
#extensions from ‘/home/kunal/python/ReportLab_2_3/src/rl_addons/renderPM’
# installing with freetype version 21
###################################

Приклад:

>>> from reportlab.pdfgen.canvas import Canvas
# Select the canvas of letter page size
>>> from reportlab.lib.pagesizes import letter
>>> pdf = Canvas(“bond.pdf”, pagesize = letter)
# import units
>>> from reportlab.lib.units import cm, mm, inch, pica
>>> pdf.setFont(“Courier”, 60)
>>> pdf.setFillColorRGB(1, 0, 0)
>>> pdf.drawCentredString(letter[0] / 2, inch * 6, “MI6 CLASSIFIED”)
>>> pdf.setFont(“Courier”, 40)
>>> pdf.drawCentredString(letter[0] / 2, inch * 5, “For 007’s Eyes Only”)
# Close the drawing for current page
>>> pdf.showPage()
# Save the pdf page
>>> pdf.save()

Вихід:

@image:pdf.png
@title: PDF Output

49. Використання API Twitter

Можете приєднатися доTwitter за допомогою модуля ‘Python- Twitter’.
Виконайте наступні кроки для встановлення Python-Twitter:

$ wget http://python-twitter.googlecode.com/files/python-twitter-0.6.tar.gz
$ tar xvfz python-twitter*
$ cd python-twitter*
$ sudo python setup.py install

Приклад (витягування списку послідовників):

>>> import twitter
# Тут використовуйте свій власний обліковий запис twitter
>>> mytwi = twitter.Api(username=’donaldo’,password=’xxxxxx’)
>>> friends = mytwi.GetFriends()
>>> print [u.name for u in friends] [u’Matt Legend Gemmell’, u’jono wells’, u’The MDN Big Blog’, u’Manish Mandal’, u’iH8sn0w’, u’IndianVideoGamer.com’, u’FakeAaron Hillegass’, u’ChaosCode’, u’nileshp’, u’Frank Jennings’,..’]

50. Doing Yahoo! News search

Можете використати Yahoo! search SDK для доступу до Yahoo! search APIs з Python.
Виконайте наступні кроки для встановлення:

$wget http://developer.yahoo.com/download/files/yws-2.12.zip
$ unzip yws*
$ cd yws*/Python/pYsearch*/
$ sudo python setup.py install

Приклад:

# Імпорт нового пошукового API
>>> from yahoo.search.news import NewsSearch
>>> srch = NewsSearch(‘YahooDemo’, query=’London’)
# Витягування результатів
>>> info = srch.parse_results()
>>> info.total_results_available 41640
>>> info.total_results_returned 10
>>> for result in info.results: ... print “’%s’, from %s” % (result[‘Title’], result[‘NewsSource’])...
‘Afghan Handover to Be Planned at LondonConference, Brown Says’, from Bloomberg......
...........

Новини

  • SDR в IoT

    iotSDR пропонує платформу розробок для IoT-радіо та мережевих доменів. На платі два передавачі Microchip AT86RF215, для вводу-виводу модему на Xilinx ZYNQ SoC, приймач GNSS MAX2769 для GPS, Galileo, BieDou та Glonass. Плата сумісна з ПЗ GNURadio SDR. Дозволяє розробити протоколи фізичного рівня LoRa, SigFox, WightLess, Bluetooth, BLE, 802.15.4, ZigBee тощо для IoT, або шлюз IoT через TheThingsNetwork, LPWAN або Google Thread. Пам'ять EEPROM: 1x AT24MAC602 , flash-пам'ять: 1x QSPI 128 Мб, RAM: 256 MБ DDR3,слот для Micro SD карти, входи/виходи: 2x 8-бітних інтерфейси PL, інтерфейс 8-бітного PS, Gigabit Ethernet, USB 2.0 (USB3310), USB 2.0 (CP2104), 2x SMA RF-роз'єми для приймача діапазонів IoT, 2x SMA RF-роз'єми для приймача 2,4 ГГц , RF-роз'єм приймач GNSS, FPGA-роз'єм JTAG для програмування. Розміри плати: 76,2 мм x 101,6 мм.

     

    in Новини

Записатися на курс