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调用java的Webservice示例
Mar 10 Python
Python中使用wxPython开发的一个简易笔记本程序实例
Feb 08 Python
Python字符串中查找子串小技巧
Apr 10 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
May 24 Python
pandas 数据索引与选取的实现方法
Jun 21 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
基于python使用tibco ems代码实例
Dec 20 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
Django之form组件自动校验数据实现
Jan 14 Python
python实现加密的方式总结
Jan 19 Python
Python logging模块进行封装实现原理解析
Aug 07 Python
python中@property的作用和getter setter的解释
Dec 22 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
极典R601SW收音机
2021/03/02 无线电
深入php var_dump()函数的详解
2013/06/05 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
JS烟花背景效果实现方法
2015/03/03 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
微信小程序switch组件使用详解
2018/01/31 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
详解Python进程间通信之命名管道
2017/08/28 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
Python iter()函数用法实例分析
2018/03/17 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
PyQt5实现画布小程序
2020/05/30 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
护理学毕业生自荐信
2013/10/02 职场文书
护理学专业推荐信
2013/12/03 职场文书
艺术设计专业个人求职信范文
2013/12/11 职场文书
汽车销售顾问求职自荐信
2014/01/01 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
公司保洁员管理制度
2015/08/04 职场文书