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函数学习笔记
Oct 07 Python
python socket 超时设置 errno 10054
Jul 01 Python
python根据开头和结尾字符串获取中间字符串的方法
Mar 26 Python
解决Python requests 报错方法集锦
Mar 19 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
wxPython多个窗口的基本结构
Nov 19 Python
Python assert关键字原理及实例解析
Dec 13 Python
Python hmac模块使用实例解析
Dec 24 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
Feb 11 Python
完美解决pycharm导入自己写的py文件爆红问题
Feb 12 Python
python 爬虫之selenium可视化爬虫的实现
Dec 04 Python
关于python中模块和重载的问题
Nov 02 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 $_SERVER windows系统与linux系统下的区别说明
2014/02/14 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
js密码强度实时检测代码
2016/03/02 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
jQuery实现对网页节点的增删改查功能示例
2017/09/18 jQuery
Vue.js中的computed工作原理
2018/03/22 Javascript
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
Python编程中的文件读写及相关的文件对象方法讲解
2016/01/19 Python
用Python写冒泡排序代码
2016/04/12 Python
基于pandas数据样本行列选取的方法
2018/04/20 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
python 实现在Excel末尾增加新行
2018/05/02 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
深入浅析python3中的unicode和bytes问题
2019/07/03 Python
Django 接收Post请求数据,并保存到数据库的实现方法
2019/07/12 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
详解python itertools功能
2020/02/07 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
Python气泡提示与标签的实现
2020/04/01 Python
python+selenium爬取微博热搜存入Mysql的实现方法
2021/01/27 Python
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
降消项目实施方案
2014/03/30 职场文书
药品营销策划方案
2014/06/15 职场文书
先进班组事迹材料
2014/12/25 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
Pandas自定义选项option设置
2021/07/25 Python