亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        Python簡(jiǎn)單技巧和常用參考

        字號(hào):


            python文件支持中文
            # -*- coding: UTF-8 -*-
            執(zhí)行shell命令
            from subprocess import Popen, PIPE
            def run_cmd(cmd):
            #Popen call wrapper.return (code, stdout, stderr)
            child = Popen(cmd, stdin = PIPE, stdout = PIPE, stderr = PIPE, shell = True)
            out, err = child.communicate()
            ret = child.wait()
            return (ret, out, err)
            獲取當(dāng)前python腳本文件所在路徑
            import os
            os.path.split(os.path.realpath(__file__))[0]
            json模塊 import的問(wèn)題
            try :
            import json
            except :
            import simplejson as json
            使用json工具格式化json
            #python 2.7以下
            echo \'{\"hello\":1}\' | python -m simplejson.tool
            #python 2.7及以上
            echo \'{\"hello\":1}\' | python -m json.tool
            一般調(diào)用步驟
            Py_Initialize(); //初始化Python環(huán)境
            PyImport_ImportModule("test"); // 載入python模塊
            PyObject_GetAttrString(g_pModule,"test1"); //獲得相應(yīng)Python函數(shù)的PyObject
            PyObject_CallFunction(test1,"i,s",2,e); //調(diào)用Python相應(yīng)的函數(shù)
            Py_Finalize(); //結(jié)束
            C語(yǔ)言的示例代碼
            #include <python2.7/Python.h>
            int main(){
            PyObject * g_pModule = NULL;
            Py_Initialize(); //使用python之前,要調(diào)用Py_Initialize();這個(gè)函數(shù)進(jìn)行初始化
            if (!Py_IsInitialized())
            {
            printf("init error\n");
            return -1;
            }
            PyRun_SimpleString("import sys");
            PyRun_SimpleString("sys.path.append('./')");
            g_pModule =PyImport_ImportModule("mytest");//這里是要調(diào)用的文件名,我們這里是當(dāng)前目錄下test.py
            if (!g_pModule) {
            printf("Cant open python file!\n");
            return -2;
            }
            PyObject * test1 = PyObject_GetAttrString(g_pModule,"test1");//這里是要調(diào)用的函數(shù)名
            PyObject *objResult = PyObject_CallFunction(test1,"i,s",2,e);//調(diào)用函數(shù)
            if (!objResult){
            printf("invoke function fail\n");
            }
            PyObject * test2= PyObject_GetAttrString(g_pModule,"test2");//這里是要調(diào)用的函數(shù)名
            objResult = PyObject_CallFunction(test2,"i",2);//調(diào)用函數(shù)
            char * x = PyString_AsString(objResult);
            printf("%s\n",x);
            Py_Finalize();//調(diào)用Py_Finalize,這個(gè)跟Py_Initialize相對(duì)應(yīng)的。
            }
            Python程序mytest.py
            def test1(s,str):
            print s+str
            return 0
            def test2(s):
            return s
            C程序的編譯方法
            #假設(shè)我們的python編譯的時(shí)候安裝在/opt/python里,那么我們可以用這樣的命令來(lái)編譯程序
            $gcc -I/opt/python/include -L/opt/python/lib/ -lpython2.7 test.c
            注意: 這里要求python編譯的時(shí)候,需要有動(dòng)態(tài)鏈接庫(kù)即加上--enable-shared
            ./configure --prefix=/opt/python --enable-shared