python 调用c语言函数的方法

yipeiwu_com6年前Python基础

虽然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脚本在Linux下实现部分Bash Shell的教程

对于Linux用户来说,命令行的名声相当的高。不像其他操作系统,命令行是一个可怕的命题,但是对于Linux社区中那些经验丰富的大牛,命令行却是最值得推荐鼓励使用的。通常,命令行对比图形用...

Python 匹配任意字符(包括换行符)的正则表达式写法

想使用正则表达式来获取一段文本中的任意字符,写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本。于是查了一下手册,才发现正则表达式中,“.”(点符号)匹配的是除了换...

Python实现非正太分布的异常值检测方式

Python实现非正太分布的异常值检测方式

工作中,我们经常会遇到数据异常,比如说浏览量突增猛降,交易量突增猛降,但是这些数据又不是符合正太分布的,如果用几倍西格玛就不合适,那么我们如何来判断这些变化是否在合理的范围呢? 小白查阅...

Ubuntu下Python2与Python3的共存问题

Linux系统一般自带Python,有时候又自己下载了Python,因此有可能Python2和Python3同时存在。那么当我们在Terminal键入python的时候,会调出哪个Pyt...

pandas 两列时间相减换算为秒的方法

如下所示: pd.to_datetime(data[data['last_O_XLMC']==data['O_XLMC']]['O_SJFCSJ'], format='%H:%M:%...