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实现通过代理服务器访问远程url的方法
Apr 29 Python
在Python的struct模块中进行数据格式转换的方法
Jun 17 Python
Python利用flask sqlalchemy实现分页效果
Aug 02 Python
python文件名和文件路径操作实例
Sep 29 Python
python实现ID3决策树算法
Dec 20 Python
tensorflow入门之训练简单的神经网络方法
Feb 26 Python
使用Selenium破解新浪微博的四宫格验证码
Oct 19 Python
Python Django 封装分页成通用的模块详解
Aug 21 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
Dec 30 Python
python torch.utils.data.DataLoader使用方法
Apr 02 Python
Python基于爬虫实现全网搜索并下载音乐
Feb 14 Python
Python可视化神器pyecharts之绘制地理图表练习
Jul 07 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
PHP生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
PHP中Header使用的HTTP协议及常用方法小结
2014/11/04 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
jquery $.fn $.fx是什么意思有什么用
2013/11/04 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
python各种语言间时间的转化实现代码
2016/03/23 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
Python中turtle库的使用实例
2019/09/09 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
python为什么要安装到c盘
2020/07/20 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
Hotels.com泰国:酒店预订网站
2019/11/20 全球购物
西安夏日科技有限公司Java笔试题
2013/01/11 面试题
四年级数学教学反思
2014/02/02 职场文书
合同意向书范本
2014/07/30 职场文书
运动会演讲稿100字
2014/08/25 职场文书
南京市纪委监察局整改方案
2014/09/16 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
小学入学感言
2015/08/01 职场文书
生产车间管理制度
2015/08/04 职场文书