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 help()函数用法详解
Mar 11 Python
Python3使用requests包抓取并保存网页源码的方法
Mar 15 Python
Python 使用os.remove删除文件夹时报错的解决方法
Jan 13 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
python编写Logistic逻辑回归
Dec 30 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 Python
influx+grafana自定义python采集数据和一些坑的总结
Sep 17 Python
python图形绘制奥运五环实例讲解
Sep 14 Python
python数据分析工具之 matplotlib详解
Apr 09 Python
python生成xml时规定dtd实例方法
Sep 21 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
Apache2 httpd.conf 中文版
2006/11/17 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
php获取错误信息的方法
2015/07/17 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
原生js和jquery中有关透明度设置的相关问题
2014/01/08 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
30分钟精通React今年最劲爆的新特性——React Hooks
2019/03/11 Javascript
Vue实现base64编码图片间的切换功能
2019/12/04 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
Python读取网页内容的方法
2015/07/30 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
python中什么是面向对象
2020/06/11 Python
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
《世界多美呀》教学反思
2014/03/02 职场文书
爱我中华教学反思
2014/04/28 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
国庆节演讲稿
2014/05/27 职场文书
廉洁自律个人总结
2015/02/14 职场文书
安全责任协议书范本
2016/03/23 职场文书
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript