• 技术文章 >常见问题 >Python常见问题

    c语言如何运行python脚本

    silencementsilencement2020-02-05 12:30:07原创3310

    目前的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

    1

    2

    3

    4

    5

    6

    7

    8

    # !/usr/bin/env python2.6

    import sys

    def test():

        for arg in sys.argv:

            print arg

     

    if __name__=='__main__':

        test()

    以下是测试用的c++程序文件:test.c++

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    #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;

    }

    推荐学习《Python教程》!

    专题推荐:python
    上一篇:vs怎么写python代码 下一篇:python打开中文文件名乱码怎么办

    相关文章推荐

    • 怎么查看python下载是多少位的• python如何绘柱状图• python中怎么定位元素• python中等待怎么表示

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网