不说话,贴代码
uuxx/test.py
________________________
#!/usr/bin/env python
import uuxx
for i in range(111):
filename=uuxx.uufilename()
print filename,len(filename)
________________________
uuxx/setup.py
________________________
#!/usr/bin/python
from distutils.core import setup, Extension
setup(
name = "uuxx",
version = "1.1",
author = "zsp",
author_email = "zsp007@gmail.com",
url = "http://zsp.iteye.com",
description = "uuid for more things",
license = "GPL",
classifiers = [
"License :: GPL",
"Programming Language :: C++"],
ext_modules = [
Extension(
"uuxx",
["uuxx.cpp"],
include_dirs = ["/usr/include/"],
libraries = ["uuid","util"]
)
]
)
________________________
uuxx.cpp
________________________
extern
"C"
{
#include <uuid/uuid.h>
#include <Python.h>
}
void
base64_encode(const
void
* pdata,const
unsigned
long
data_size, void
* out_pcode)
{
static
const
unsigned
char
base64char[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_!"
;
if
(data_size <=0
) return
;
const
unsigned
char
* pS = (const
unsigned
char
*)pdata;
const
unsigned
char
* pSEnd = &pS[data_size];
unsigned
char
* pD =(unsigned
char
*)out_pcode;
for
(;pS <pSEnd-2
;pS+=3
,pD+=4
)
{
pD[0
] = base64char[pS[0
]>> 2
];
pD[1
] = base64char[0x3F
& (pS[0
] <<4
| pS[1
]>> 4
)];
pD[2
] = base64char[0x3F
& (pS[1
] <<2
| pS[2
]>> 6
)];
pD[3
] = base64char[0x3F
& pS[2
]];
}
//static const unsigned char BASE64_PADDING='=';
switch
(pSEnd-pS)
{
case
1
:
pD[0
]=base64char[pS[0
]>> 2
];
pD[1
]=base64char[0x3F
& (pS[0
] <<4
)];
//pD[2] = BASE64_PADDING;
//pD[3] = BASE64_PADDING ;
break
;
case
2
:
pD[0
]=base64char[pS[0
]>> 2
];
pD[1
]=base64char[0x3F
& (pS[0
] <<4
| pS[1
]>> 4
)];
pD[2
]=base64char[0x3F
& (pS[1
] <<2
)];
//pD[3] = BASE64_PADDING ;
break
;
}
};
PyObject * uufilename(PyObject * args,PyObject *kwds){
uuid_t uu;
uuid_generate( uu );
//用的改造过的base64的编码+改造的uuid
static
const
unsigned
data_size=16
;
static
const
int
b64_length = (data_size+2
)/3
*4
-2
;
char
b64uu[data_size];
base64_encode(uu,data_size,b64uu);
PyObject *value = PyString_FromStringAndSize(b64uu,b64_length);
return
value;
};
PyDoc_STRVAR(uufilename__doc__,
"uufilename"
);
static
PyMethodDef uuxx_methods[] = {
{
"uufilename"
,
uufilename,
METH_VARARGS,
uufilename__doc__
},
{NULL, NULL, 0
, NULL}
};
PyMODINIT_FUNC inituuxx(){
Py_InitModule("uuxx"
, uuxx_methods);
}
分享到:
相关推荐
Python 模块演示。 也在官方托管。 为在布拉格演讲而制作,用于软件监控和开发的高级工具类 -。 该模块是由名为的教程创建的,编写得非常好且易于使用。 整个项目在大约 30 分钟内完成,没有发生任何错误,我...
go 中的 cgo 模块可以让 go 无缝调用 c 或者 c++ 的代码,而 python 本身就是个 c 库,自然也可以由 cgo 直接调用,前提是指定正确的编译条件,如 Python.h 头文件(),以及要链接的库文件。本文以 Ubuntu 18.04 ...
课程作业基于socket模块实现的一个FTP工具python源码.zip课程作业基于socket模块实现的一个FTP工具python源码.zip课程作业基于socket模块实现的一个FTP工具python源码.zip课程作业基于socket模块实现的一个FTP工具...
如何使用cffi从 python 调用 C 二进制文件 我们有意在ags_blosc_wrapper公开了 C 和 C++ API,以简化与其他语言的绑定。 在我们看来,这始终是要使用的方法。 我们建议不要尝试直接绑定到 C++。 cffi或cython均可...
(基于python的毕业设计)数学函数绘图软件cs(源码+说明+演示视频),本科毕业设计高分项目。 【项目技术】 python+mysql+c/s 【实现功能】 管理员用户: (1)个人信息管理:管理员用户可以通过此功能对自己的密码进行...
这是一个C扩展配置文件是纯python并增加了大量开销生成调用图药香需要PyCharm专业人士绘制有用的电话gprof2dot 需要Graphiz 首先,我们需要告诉分析器将收集的数据转储到文件中: python3 -m cProfile -o output....
1.3.7 使用pickle模块 1.4 scipy 1.4.1 图像模糊 1.4.2 图像导数 1.4.3 形态学:对象计数 1.4.4 一些有用的scipy模块 1.5 高级示例:图像去噪 练习 代码示例约定 第2章 局部图像描述子 2.1 ...
视频内容包括 1-python简介和开发环境构建.wmv 2-python基础数据类型.wmv ... 13-python调用c和c++模块.wmv 14-python无缝调用c.wmv 15.服务器架构.wmv 16.django演示.wmv 深入理解python视频教程.txt
因此,我们假定读者可以很熟练的使用搜索引擎以及知道怎样查询在线的 Python 文档。 这本书不适合 Python 的初学者。事实上,本书已经假定了读者已经有了一定的 Python 基础,看完过几本入门书籍。本书也不是那种...
笔记本提供了有关如何使用该模块来构建和分析模型的演示和概述。 有关该模块提供的所有方法的详细信息,请参见。 笔记: 除了在requirements.txt列出的依赖关系,该模块需要JAGS (其不是Python包)被成功之前配置...
DeepStream Python应用程序此存储库包含Python绑定和示例应用程序。 支持的SDK版本:5.1 从下载最新的发行包,其中包含绑定和示例应用程序...样例应用此处提供的示例应用程序演示了如何使用Python处理DeepStream管道。
为了演示如何使用它们来简化模拟设置,我在这些模块中附带了几个针对各种典型问题的即用型模拟。我相信所呈现的脚本对于任何研究光子晶体、超材料、集成光子学和纳米光子学、腔谐振器、波导等的人来说都是一个很好的...
python使用ctypes模块调用windows api GetVersionEx获取当前系统版本,没有使用python32 复制代码 代码如下:#!c:/python27/python.exe#-*- coding:utf-8 -*- “通过调用Window API判断当前系统版本”# 演示通过...
克隆后(带有子模块),使用PowerShell运行以安装依赖项。 这可能需要您手动下载并安装一些软件包(提供了链接)。 打开解决方案文件,然后按F5生成并运行。 进入示例后,您可以Alt + Tab返回Visual Studio,对AI....
python+mysql+c/s 【实现功能】 管理员用户: (1)个人信息管理:管理员用户可以通过此功能对自己的密码进行维护。 (2)用户信息管理:管理员用户通过此功能可以维护系统内注册用户的信息,比如可以对用户的姓名、...
该演示文稿以及Python模块可在以下位置找到: 介绍 用于BCDI阶段检索的Module Phaser模块的基本Python教程。 包含用于高级光子源中34-ID-C设置的衍射几何模块。 可以适应其他几何形状,如果您需要对光束线进行此操作...
【基于Python+Django的毕业设计】数学函数绘图软件cs(源码+录像演示+说明).zip 【项目技术】 python+mysql+c/s 【实现功能】 管理员用户: (1)个人信息管理:管理员用户可以通过此功能对自己的密码进行维护。 (2...
本文实例讲述了Python使用scipy模块实现一维卷积运算。分享给大家供大家参考,具体如下: 一 介绍 signal模块包含大量滤波函数、B样条插值算法等等。下面的代码演示了一维信号的卷积运算。 二 代码 import numpy as...
GetData文件使用python爬虫技术,爬取长春和全国的天气信息数据 爬取网站:http://tianqi.2345.com/wea_history/54161.htm ProcessDate文件对爬取的天气数据进行了预处理 几个CSV文件保存的是爬取后并经过处理的...
使用SAHI模块完成超分辨率以及小目标检测是应用示例python源码含项目说明.zip ## 环境 ·win + pycharm ·sahi==0.8.4 ·yolov5==5.0 ·pytorch==1.7.1+cu101 ```commandline # 安装gpu版torch和torchvision pip ...