Посты в Python
exelens 09.06.2010 23:07

PythonПример простого web сервера Nano PyHttpd на Python

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

После того как запустите скрипт, создайте рядом со скриптом папку www и разместите там файл index.html и посмотрите на работу сервера через веб браузер зайдя по адресу 127.0.0.1:8080.
P.S. В качестве реального сервера лучше установить что-нибудь посерьёзнее...
Полностью.
+ 3 -
13
muhas 13.04.2010 13:57

PythonПишем синонимайзер с интерфейсом на PyQt

Один хороший человек поделился своим опытом (и кодом) по созданию синониайзера на python с GUI на Qt
Появилась необходимость облегчить работу нашего копирайтера, написать программу подбирающую синонимы к введённому слову. В виде отступления хочу заметить что наш копирайтер работает в linux (KDE4) и потому выбор графической библиотеки пал на Qt.

В заметке описан процес создания класса для отрисовки gui, и сам код программы.

PS Копирайтер на linux!!!
Полностью.
+ 7 -
9
Restless 13.02.2010 19:18

PythonСкриншот в один клик мыши и интеграция с Dropbox

Часто ли вы делаете скриншоты? Я очень часто.
При этом сделать скрин часто составляет лишь полдела, обычно приходиться заливать его на хостинг изображений, получить ссылку и уже потом кинуть ее на форум (другу, соц. сеть, подставить_свое). Теперь можно пропустить все эти действия и сделать всего один клик.
Полностью.
+ 8 -
18
Restless 05.02.2010 22:50

PythonGoogle переводчик (Qt)

Недавно откопал на welinux пост про клиент к гугловскому переводчику . Но он на ГТК! Поэтому решил написать свой, с блэкджеком и девушками, на qt. Для пользователей kde есть плазмоид translatoid, но лично мне его использовать не совсем удобно. Это обусловило появление данного переводчика.
Полностью.
+ 8 -
18
aspire89 18.01.2010 18:28

PythonОпределение оператора мобильной связи по номеру.

После перехода на Linux начал изучать Python.Так как до этого больше года писал для Windows Mobile, то сложностей не возникает и начал переписывать существующие проекты на питоне.
Первое, что переписал - это определение оператора мобильной связи по номеру.
Полностью.
+ 7 -
19
smacker 03.12.2009 17:11

PythonИнструментальные среды разработки для Python

Писать, как известно, можно где угодно и как угодно. Вплоть до скриптов на листке бумаги, а интерпретатор держать в голове. Всё зависит от личных предпочтений того или иного человека. Я расскажу о тех средах в которых хоть немного успел поработать. И начну с самого просто:


Полностью.
+ 10 -
30
bobry 29.10.2009 05:50

Pythonrlcompleter: дополнение на месте


Все кто хоть чуть-чуть знаком с python, знают как удобно бывает, время от времени, проверить работоспособность чего-нибудь в интерпритаторе. Лично у меня постоянно вылетают из головы названия методов/функций итп, посему частенько приходится писать чтонибудь а ля:
1
2
3
>>> import sys
>>> dir(sys)
<'__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'hexversion', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'py3kwarning', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions'>


И все еще достаточно терпимо, когда список, возвращаемый dir сравнительно небольшой, как выше, но когда он в два, а то и три, раза больше - найти нужный пункт становится проблемматично. На помощь, в таком случае, приходит модуль rlcompleter. Чтобы проиллюстрировать, как это работает приведу пример из официальной документации:
1
2
3
4
5
6
7
&gt;&gt;&gt; import rlcompleter
&gt;&gt;&gt; import readline
&gt;&gt;&gt; readline.parse_and_bind("tab: complete")
&gt;&gt;&gt; readline. 
readline.__doc__          readline.get_line_buffer(  readline.read_init_file(
readline.__file__         readline.insert_text(      readline.set_completer(
readline.__name__         readline.parse_and_bind(


К слову, упомянутый выше модуль readline помимо дополнения, имеет еще одну полезную функцию - восстановление истории предыдущих сеансов работы с интерпритатором, в виде функций read_history_file и write_history_file.

Чтобы заставить интерпритатор автоматически загружать все эти вкусности делаем следующее:
создаем в домашнем каталоге файл .pystartup (вообще говоря, выбор местоположения и имени этого файла не критичен, так что файл может находиться где угодно и назывться как вам хочется)
добавляем в этот файл строчки:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# -*- coding: utf-8 -*-

# Если Вы планируете использовать переменные окружения или `~`,
# то нужно обернуть строку в os.path.expandvars или os.path.expanduser
#
# Замечание: в случае, если значение перменной - пустая строка, readline
# будет использовать стандартный путь: ~/.history
HISTORY_FILE = 'path/to/history/file'
# Количество элементов истории, которые будут сохраняться, или -1, если
# Вы хотите сохранять все элементы.
HISTORY_FILE_SIZE = 20


import atexit
import rlcompleter
import readline


def validate_file(history_file):
    "Function checks if the filename for the history file is valid."
    import os.path
    return not history_file or os.path.exists(history_file)


def save_history_file():
    "Function saves input history to HISTORY_FILE."
    import readline
    readline.write_history_file(HISTORY_FILE)


# Инициализируем дополнение по 
readline.parse_and_bind("tab: complete")
# Устанавливаем размер файла истории
readline.set_history_length(HISTORY_FILE_SIZE)
# Загружаем историю из файла
if validate_file(HISTORY_FILE):
    readline.read_history_file(HISTORY_FILE)

# Регистрируем функцию для сохранения истории, при выходе из интерпритатора
atexit.register(save_history_file)

# Удаляем импортированные модули
del atexit
del rlcompleter
del readline

устанавливаем в ~/.bashrc (.zshrc, .cshrc w\e) значение переменной PYTHONSTARTUP
1
export PYTHONSTARTUP ~/.pystartup

наслаждаемся готовым результатом :)
ЗЫ: хочется заранее разочаровать пользователей Windows, модуль , используемый в этом решении, имеет только Unix реализацию.
Полностью.
+ 9 -
8
kakty3 26.10.2009 21:18

PythonPython и плейлист Audacious

Недавно, на досуге, то ли от нечего делать, то ли от лени постоянно Драг'н'Дропать файлы в плейлист Audacious решил написать простенький скриптик на питоне для добавления файлов в плейлист и добавить его в контекстное меню Наутилуса. И решил, почему бы не поделиться им с общественностью?
Полностью.
+ 11 -
11
kstep 21.10.2009 00:58

PythonПузомерка для welinuxоида

Если вдруг кому интересно следить за своей (или чужой) кармой на WeLinux, набросал простой скрипт.
Заодно он может служить примером простого HTML-парсера и использования декораторов/свойств в Питоне
для начинающих.

Полностью.
+ 11 -
20
evgenyl 28.09.2009 14:05

PythonЧитаем /proc

Продолжаю серию статей о питоне, решил затронуть тему замечательной файловой системы /proc.

Я напишу несколько примеров для получения информации из proc, это можно реализовать на любом языке, тут в общем важен принцип.
Полностью.
+ 10 -
1
1 2 3 4 5