Python簡單技巧和常用參考_PHP教程
推薦:使用Poco C++庫創(chuàng)建websocket安全訪問(wss)客戶端Poco websocket庫特點(diǎn): 1,使用http/https ClientSession創(chuàng)建websocket client 2,是同步的,這對C++桌面編程來說應(yīng)該是夠用的. 3,依賴openssl. WS客戶端創(chuàng)建不再贅述,官方已有范例.
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的問題
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語言的示例代碼
#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相對應(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里,那么我們可以用這樣的命令來編譯程序
$gcc -I/opt/python/include -L/opt/python/lib/ -lpython2.7 test.c
注意: 這里要求python編譯的時(shí)候,需要有動(dòng)態(tài)鏈接庫即加上--enable-shared
./configure --prefix=/opt/python --enable-shared
- 使用Poco C++庫創(chuàng)建websocket安全訪問(wss)客戶端
- php刪除指定目錄下的相關(guān)文件實(shí)例
- PHP流程控制的替代語法示例
- PHP的三種類型的運(yùn)算符
- php實(shí)現(xiàn)mysql數(shù)據(jù)庫隨機(jī)重排例子
- PHP如何判斷一個(gè)gif圖片是否為動(dòng)態(tài)圖片
- php 一句話刪除目錄下所有文件
- php curl實(shí)現(xiàn)http與https請求實(shí)例
- php保存二進(jìn)制原始數(shù)據(jù)為圖片的程序代碼
- PHP遍歷文件夾與文件類及處理類用法實(shí)例
- php禁止直接從瀏覽器輸入地址訪問.PHP文件
- php驗(yàn)證session無效問題解決辦法
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- PHP實(shí)例:一個(gè)比較完善的購物車類
- 談PHP編程在WAP開發(fā)中的應(yīng)用
- php插入中文到sql server 2008里出現(xiàn)亂碼的解決辦法
- 基于MySQL到MongoDB簡易對照表的詳解
- 使用PHP獲取當(dāng)前url路徑的函數(shù)以及服務(wù)器變量
- mysql to mssql,mssql 轉(zhuǎn)mysql轉(zhuǎn)換方法
- PHP的語言層面的優(yōu)化以及代碼優(yōu)化技巧
- PHP:避免重復(fù)提交和檢查數(shù)據(jù)來路
- Linux操作系統(tǒng)啟動(dòng)httpd失敗的解決方法
- 解答PHP上傳多個(gè)圖片并校驗(yàn)的代碼問題
- 相關(guān)鏈接:
- 教程說明:
PHP教程-Python簡單技巧和常用參考。