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之yield表达式学习
Sep 02 Python
Python中内置的日志模块logging用法详解
Jul 12 Python
Python操作MongoDB详解及实例
May 18 Python
Python爬豆瓣电影实例
Feb 23 Python
对python插入数据库和生成插入sql的示例讲解
Nov 14 Python
Python3非对称加密算法RSA实例详解
Dec 06 Python
Python设计模式之状态模式原理与用法详解
Jan 15 Python
python处理大日志文件
Jul 23 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
Mar 20 Python
新手学习Python2和Python3中print不同的用法
Jun 09 Python
Pytorch生成随机数Tensor的方法汇总
Sep 09 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
中国第一家无线电行
2021/03/01 无线电
php 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
php源码分析之DZX1.5加密解密函数authcode用法
2015/06/17 PHP
浅谈php提交form表单
2015/07/01 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
js图片预加载示例
2014/04/30 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
JavaScript之Object类型介绍
2015/04/01 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
jQuery实现自定义checkbox和radio样式
2015/07/13 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
微信小程序实现定位及到指定位置导航的示例代码
2019/08/20 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
详解Vue.js 响应接口
2020/07/04 Javascript
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
python通过索引遍历列表的方法
2015/05/04 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
python实现简单登陆系统
2018/10/18 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
焊接专业毕业生求职信
2013/10/01 职场文书
初中同学聚会邀请函
2014/02/03 职场文书
《颐和园》教学反思
2014/02/26 职场文书
医学生临床实习自我评价
2014/03/07 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
入党现实表现材料
2014/12/23 职场文书