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实现带错误处理功能的远程文件读取方法
Apr 29 Python
浅谈Python中的闭包
Jul 08 Python
python中的字典操作及字典函数
Jan 03 Python
对PyQt5中的菜单栏和工具栏实例详解
Jun 20 Python
ERLANG和PYTHON互通实现过程详解
Jul 05 Python
pandas 时间格式转换的实现
Jul 06 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
Aug 27 Python
Pytorch之Variable的用法
Dec 31 Python
Python jieba结巴分词原理及用法解析
Nov 05 Python
python海龟绘图之画国旗实例代码
Nov 11 Python
Python解析微信dat文件的方法
Nov 30 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 zlib扩展实现页面GZIP压缩输出
2010/06/17 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
PHP常用数组函数介绍
2014/07/28 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
基于jquery的跨域调用文件
2010/11/19 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
2011/10/27 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
js实现卡片式项目管理界面UI设计效果
2015/12/08 Javascript
js获取时间函数及扩展函数的方法
2016/10/30 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
Vue实现背景更换颜色操作
2020/07/17 Javascript
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
python看某个模块的版本方法
2018/10/16 Python
python实现朴素贝叶斯算法
2018/11/19 Python
python生成带有表格的图片实例
2019/02/03 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
Java程序员常见面试题
2015/07/16 面试题
《要下雨了》教学反思
2014/02/17 职场文书
小小商店教学反思
2014/04/27 职场文书
彩妆大赛策划方案
2014/05/13 职场文书
公司承诺书格式
2014/05/21 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js