[python3 实用教程]使用ctypes模块调用运行c代码
[python3 实用教程]使用ctypes模块调用运行c代码
- 创建c文件
demo.c:
#include<stdio.h>long my_app(long a){long ret = 0;for(long i=0; i<a; i++){ret += 2;}return(ret);
}
- gcc生成so文件
gcc demo.c -shared -o lib_app.so
- 创建python文件
import time
from ctypes import *myso = CDLL("/Users/yss/Demo/python3/ctype_demo/lib_app.so")
ts = time.time()
c = myso.my_app(100000000)
print("time spend ",time.time()-ts,c)def my_add(a):ret = 0for i in range(a):ret += 2return(ret)ts = time.time()
d = my_add(100000000)
print("time spend ",time.time()-ts,d)
- 运行结果
(base) yansongdeMacBook-Pro:ctype_demo yss$ python3 demo1.py
time spend 0.1458289623260498 200000000
time spend 5.0953381061553955 200000000
- 结果分析
同样的操作,当我们用C语言来编写的时候,运行速度提升了十倍以上,可见C语言的运行效率之高。以后的开发工作中,如果有大规模的数据运算,建议用C语言编程再利用Python调用。
由此我们也感觉到了Python作为通用语言的强大,可以配合多种语言协同工作。
[python3 实用教程]使用ctypes模块调用运行c代码相关推荐
- python调用c函数传字符串参数_Python使用ctypes模块调用DLL函数之传递数值、指针与字符串参数...
在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...
- c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...
在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...
- pyquery获取不到网页完整源代码_爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网...
爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网 前言 上篇文章 PyQuery (一) 回顾.今天来介绍具体 PyQuery 的使用方法. 穷游网目标与分析 开始之前,按照之前的套路一步 ...
- Python3 菜鸟教程 笔记7 -- 模块、输入和输出
$ 模块(摘要) 传送门:https://www.runoob.com/python3/python3-module.html @ __name__属性 一个模块被另一个程序第一次引入时,其主程序将运 ...
- python通过Ctypes 模块 调用C++动态链接库,遇到的access violation reading 0x0000000000000000解决方案
问题是:通过C++ 程序生成 DLL 内部使用了STL 等模板以及指针和引用.通过ctypes 模块给python 程序调用.有时会报OSError: exception: access violat ...
- python pyquery不规则数据的抓取_爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网...
爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网 前言 上篇文章 PyQuery (一) 回顾.今天来介绍具体 PyQuery 的使用方法. 穷游网目标与分析 开始之前,按照之前的套路一步 ...
- 【Python教程】typing模块的作用-提高代码健壮性
typing模块的作用: 类型检查,防止运行时出现参数和返回值类型不符合. 作为开发文档附加说明,方便使用者调用时传入和返回参数类型. 该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒. ...
- 在IDEA中使用MCR调用运行matlab代码
安装MCR 注意:MCR需要与打包matlab程序的matllab版本一致.(本次开发使用Matlab R2020b版本) 在Matlab Runtime官网地址下载R2020b的安装包. 解压安装包 ...
- 主成分分析用于ERP研究的实用教程-机遇和挑战(附代码)
摘要 传统的ERP的数据分析方法存在一些严重问题,例如时间窗口和感兴趣区域的随意选取,以及潜在的多成分的混合.时间主成分分析可以有助于解决这些问题,但是它在发展心理学应用中却有一些其他困难,比如年龄差 ...
最新文章
- JAVA SE学习day_02:StringBuilder、正则表达式、Object
- G6 图可视化引擎——入门教程——插件与工具
- centos5.4 64位下安装mysql5.5.14
- 教师计算机提升学到的知识,教师计算机教学工作总结(精选6篇)
- Mac下启动和停止Mysql服务
- 不是所有的程序员都来自匿名区!
- iterator [ɪtə'reɪtə] 遍历器
- 刘光星- 软件151
- Linux命令学习系列-用户切换su,sudo
- STM32程序设计(跑马灯)以及STM32原理图绘制(通过ad软件)
- 几种常用的网络传输协议
- Java聊天室界面代码
- 计算机mid函数column,excel中的函数意思=MID($C3,COLUMN(D2)-3,1)
- shape (0,) 是什么意思
- 适合打游戏的计算机,最适合玩游戏的笔记本电脑 广受好评的三款笔记本
- 美式英语口语中连读、略读,音变的技巧
- 为什么说串行比并行速度快?
- 得到大学夏季开学典礼之后感
- Linux文件目录颜色的含义
- mingw版本下qt与HTML,QT5.10开发(2) 在Windows 10下使用MinGW编译 静态Qt 5.10 release版 详细过程...