python 调用c语言函数的方法


Posted in Python onSeptember 29, 2017

虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成。这样,就需要用python来调用c的代码了

具体流程:

c编写相关函数 ,编译成库

然后在python中加载这些库,指定调用函数。

这些函数可以char ,int, float, 还能返回指针。

以下示例:

通过python调用c函数,返回"hello,world 字符串"

新建c语言文件 hello.c

touch hello.c

#include <stdio.h>

char *get_str()
{
  return "hello,world"
}

编译成库

gcc -o hello.so --share -fPIC hello.c

新建python脚本

touch test.py

from ctypes import *

dll = CDLL("./hello.so")
dll.get_str.restype = c_char_p
str = dll.get_str()
print(string_at(str, 11))

执行python脚本

[feng@arch python_c]$ python test.py 
hello,world

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python写的Socks5协议代理服务器
Aug 06 Python
python中实现php的var_dump函数功能
Jan 21 Python
Python全局变量操作详解
Apr 14 Python
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
Python  pip安装lxml出错的问题解决办法
Feb 10 Python
Python实现破解12306图片验证码的方法分析
Dec 29 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
OpenCV 之按位运算举例解析
Jun 19 Python
利用python做表格数据处理
Apr 13 Python
Python批量解压&压缩文件夹的示例代码
Apr 04 Python
python文件名和文件路径操作实例
Sep 29 #Python
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 #Python
Python 基础教程之闭包的使用方法
Sep 29 #Python
python下实现二叉堆以及堆排序的示例
Sep 29 #Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 #Python
Python实现压缩和解压缩ZIP文件的方法分析
Sep 28 #Python
Python有序字典简单实现方法示例
Sep 28 #Python
You might like
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
php二维数组排序详解
2013/11/06 PHP
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
dojo 之基础篇
2007/03/24 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
jQuery实现的导航下拉菜单效果
2016/07/04 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
[51:11]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS DT
2014/05/22 DOTA
深入解析Python中的变量和赋值运算符
2015/10/12 Python
通过Pandas读取大文件的实例
2018/06/07 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
python requests指定出口ip的例子
2019/07/25 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
matplotlib 生成的图像中无法显示中文字符的解决方法
2020/06/10 Python
如何通过python计算圆周率PI
2020/11/11 Python
HTML5在canvas中绘制复杂形状附效果截图
2014/06/23 HTML / CSS
班组长的岗位职责
2013/12/09 职场文书
物业管理计划书
2014/01/10 职场文书
运动会四百米广播稿
2014/01/19 职场文书
个人作风剖析材料
2014/02/02 职场文书
小学数学教学反思
2014/02/02 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
人事代理委托书
2014/09/27 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
社区植树节活动总结
2015/02/06 职场文书
民间借贷被告代理词
2015/05/23 职场文书