目前的C/C++与python的混合编程分为两大类:

1、使用python调用c/c++编写的扩展库,扩展python的功能,我们暂且称为python调用c/c++

2、使用c/c++程序调用执行python中定义的函数等,我们暂且称为c/c++调用python

本文只针对c/c++调用执行python作一方面的介绍,如有不正确的地方,还请诸位批评指正。

目前,主流的用法是把python作为一种文本形式的链接库,在c/c++程序中调用其中定义的函数,这方面的资料很多,本文就不在赘述了,本文重点介绍一种完整调用python脚本文件及参数的方法,闲话少说,上例子:

以下是测试用的python脚本文件,功能是输出命令行参数:sample.py# !/usr/bin/env python2.6

import sys

def test():

for arg in sys.argv:

print arg

if __name__=='__main__':

test()

以下是测试用的c++程序文件:test.c++#include "python2.6/Python.h"

int main()

{

//第一步:初始化Python

//在调用Python的提供的给C的API之前,通过执行初始化

//来添加Python的内建模块、__main__、sys等

Py_Initialize();

//检查初始化是否完成

if (!Py_IsInitialized())

{

return -1;

}

//第二步:导入sys模块

PyRun_SimpleString("import sys");

//第三步:导入执行脚本时的命令行参数,如:./sample.py arg1 arg2

PyRun_SimpleString("sys.argv['arg1','arg2']");

//第四步:执行调用脚本文件命令,注意文件的路径

if (PyRun_SimpleString("execfile('./sample.py')") == NULL)

{

return -1;

}

//第五步:关闭Python解释器

Py_Finalize();

return 0;

}

c语言代码可以python运行吗_c语言如何运行python脚本相关推荐

  1. 输入三门成绩求平均成绩的C语言代码,C0417求平均成绩_C语言程序设计源代码_doc_大学课件预览_高等教育资讯网...

    #include"stdio.h" void main() { int x,y,z,sum,ave,corr,need; printf("请输入学生的三门功课的考试成绩: ...

  2. 机械优化黄金分割法c语言编程,黄金分割法_机械优化设计_C语言程序.doc

    黄金分割法_机械优化设计_C语言程序黄金分割法_机械优化设计_C语言程序 黄金分割法的优化设计 实验报告 学院:机电工程 机制自动化11-03班 学号:541102010326 姓名:刘点点 1,黄金 ...

  3. c语言exit在哪个头文件_C语言函数执行成功时,返回1和返回0,究竟哪个好?

    基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...

  4. c语言python字典结构_C语言解析Python字典的代码实例

    这里我们简单说一些背景,就是突然想写一点用C去写Python库的东西,下面的这些方法和用法大部分参考官方介绍 Python中字典 从参数中获取 从参数中获取的情况一般有两种,一般是我们如果明确了传入类 ...

  5. python 禁用网卡_C#语言实现定时开启或禁用网卡小程序

    C#语言实现定时开启/禁用网卡 程序运行效果图 程序实现主要代码 源代码工程文件(VS2013工程文件编译通过) 查看网卡名称附图 1.win7旗舰版运行效果图: 2.程序实现主要代码: /// 网卡 ...

  6. python解题冒泡排序_C语言简答题汇总

    C语言简答汇总 根据网上常见的一些面试题整理,用于考研复试备考,大部分是C语言问答,但不仅仅限于C语言问答,也包括计网和操作系统相关的一些问答,内容如有错误,欢迎指正 1.c语言的特点以及C语言与Py ...

  7. vdcode C语言不能弹出运行窗口_C语言编程常见问题分析,以及错误解决办法!

    遇到错误怎么办 在遇到错误的时候不要慌,首先看报错,中文直接看,英文翻译看.根据报错找到错误发生的行数,一般错误就在这一行的上下几行代码.不要偷懒遇到问题马上问别人是对自己的不负责,成长是需要经历困难 ...

  8. c语言代码存放的区域 堆栈,C语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)...

    BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域.BSS是英文Block Started by Symbol的简称.BSS段属于静态内存分配. 数据段 :数据 ...

  9. c语言 方程改main的值_C语言和汇编语言是什么?他们之间可以有怎样的合作?为你解析...

    什么是c语言: C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言;尽管C语言提供了许 ...

最新文章

  1. python的print换行
  2. 90.前端 :执行方法前提示功能
  3. 远程计算机无法操作,Win10系统下qq远程不能控制对方电脑(点不动)的完全解决方法...
  4. 为什么电脑下载python很慢-Python运行速度慢你知道这是为什么吗?
  5. 这应该是目前最快速有效的ASP.NET Core学习方式(视频)
  6. SPUtility.ParseDate使用问题
  7. MariaDB Spider 数据库分库分表实践 分库分表
  8. nsstring 空值比较_用比较器的nulls排序具有空值的列表
  9. 手把手教你训练一个神经网络,打爆21点!
  10. 全球压缩毛巾行业调研及趋势分析报告
  11. 电脑键盘部分按键失灵_华硕笔记本键盘有部分按键失灵 - 卡饭网
  12. CAD梦想画图如何打印图形
  13. HYSPLIT模式简介及使用
  14. JAVA 中字符串的长度
  15. 经营微博的十个经典案例
  16. 作文素材:看完这23种蔬菜描写,恨不得穿过屏幕吃掉它们!
  17. LVDT/RVDT(线性/旋转可变差动变压器)、Resolver(旋转变压器)仿真方案
  18. python编写的函数调用说法正确的是_python逻辑题(以下10道选择题有唯一答案,请编写自定义函数judge遍历答案列表并汇报正确答案)...
  19. gss1_GSS简介:网格样式表
  20. 网络运营推广具体做什么工作

热门文章

  1. eslint airbnb 不允许尾随逗号
  2. 谷歌chrome模拟手机浏览网页:iPhone/Android
  3. 2003 64位系统 IIS6 32位模式运行
  4. linux查用户的家目录,详解Linux误删用户家目录的恢复方法
  5. Flask 路由映射对于双斜线的处理 //a//b
  6. sql的case when用法
  7. Spring-Boot——Cache
  8. 但行好事,莫问前程!
  9. Swift - 循环强引用,内存泄漏
  10. Swift4.0复习特性、编译标志和检查API的可用性