Интеграция Python с другими языками
Материал из Xgu.ru
Содержание |
[править] Вопросы и ответы
[править] Можно ли вызвать Segmentation fault у интерпретатора CPython?
Да можно, и есть несколько хорошо изестных методов это сделать. Вот здесь [1] лежит официальный список готовых программ, которые валят CPython.
[править] Можно ли с помощью ctypes вызывать функции из DLL Windows?
Вообще, с помощью ctypes и windll можно делать довольно много всего, что просто так сделать в Windows довольно тяжело. Например, даже такая простая вещь как найти полный путь программы (аналог which) в самой по себе Windows сделать сложно, но с помощью python + ctypes + windll очень легко.
import ctypes
def which(program):
path = ctypes.create_unicode_buffer(1024)
ctypes.windll.shell32.FindExecutableW(
ctypes.c_wchar_p(program),
None,
ctypes.pointer(path)
)
return path.value
print which('explorer')
Другие примеры использования смотрите, например, здесь [2].
[править] Как изменить стандартный поток вывода для С-функций?
import zook
import os
import sys
def redirect_stdout():
print "Redirecting stdout"
sys.stdout.flush() # <--- important when redirecting to files
newstdout = os.dup(1)
devnull = os.open('/dev/null', os.O_WRONLY)
os.dup2(devnull, 1)
os.close(devnull)
sys.stdout = os.fdopen(newstdout, 'w')
zook.myfunc()
redirect_stdout()
zook.myfunc()
print "But python can still print to stdout..."
[править] Дополнительная информация
[править] Интеграция с другими языками
[править] Си
[править] Примечания
| Информация о Python на xgu.ru | ||
|---|---|---|
| Реализации | Cython • Psyco • PyPy | |
| Веб-фреймворки | Django • Flask • Zope | |
| IDE | Pydev • NetBeans | |
| Курсы | Python для сетевых инженеров | |
| Другое | aalib • ctypes • gevent • mpmath • pjsua • Pandas • pyparsing • virtualenv • GMPY • IPython • Jinja2 • Python и Vim • Работа с модулями в Python • SWIG • Scapy • SciPy • Работа с датой и временем в Python • Python как shell • Web и Python • Алгоритмы, сложные структуры данных и дискретная математика в Python • Анализ кода Python • Интеграция Python с другими языками • Объекты и классы в Python • Оформление кода Python • Параллелизм и конкурентное исполнение в Python • Профайлинг в Python • Работа с базами данных в Python • Работа с операционной системой в Python • Работа с сетью в Python • Работа с текстами в Python • Работа с файлами в Python • Сравнение Python с другими языками • Тестирование в Python • Типы в Python • Элементы функционального программирования в Python • Элементы языка Python | |