[学习Cython编程]C中使用Python标准库(urllib,logging)

Python的库非常丰富,如果能在C中使用Python的一些库,无疑是很让人兴奋的,下面我们就将在C中使用Pyhton的urllib模块和logging模块。

在C中调用Python需要包含整个Python的运行时库,链接模型如下:


在C/C++中嵌入Python代码是非常简单的,下面是代码模板:

#include <Python.h>
int main(int argc,char** argv)
{
    Py_SetProgramName(argv[0]);
    Py_Initialized();
    /* Do all your stuff in side here... */
    Py_Finalize();
    return 0;
}

注意“Pyhon.h"头文件需要首先被包含。

我们通过下面几个例子学习如何嵌入Python代码:


一:urllib

Python关于网络方面的库相当丰富,我们将在C中调用urllib.urlopen获取网页内容。

url.pyx文件:

import urllib

cdef public char * open(char * url):
    content=urllib.urlopen(url).read()
    return content
public是Cython的关键字,代表这个函数被导出,所以Cython会自动创建url.c和url.h,url.h就是用来被C/C++代码包含的,Cython做的非常智能。

Python中的字符串对应的就是C中的char*,所以我们参数为char*,同时返回内容也为char*,Cython将自动帮我们完成类型转换。

我们来看看Cython自动产生的url.h头文件,我们将在主文件中包含它。

url.h文件:

#ifndef __PYX_HAVE__url
#define __PYX_HAVE__url


#ifndef __PYX_HAVE_API__url

#ifndef __PYX_EXTERN_C
  #ifdef __cplusplus
    #define __PYX_EXTERN_C extern &
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值