Python学习手册:
1.python语法:列表推导式
2.numpy 一些函数
3.matplotlib 一些函数
4.matplotlib 高阶函数
5.线程/进程 函数
6.Cython的使用
7.LMDB的读取
1.Cython概念
Cython是让Python脚本支持C语言扩展的编译器,Cython能够将Python+C混合编码的.pyx脚本转换为C代码,主要用于优化Python脚本性能或Python调用C函数库。由于Python固有的性能差的问题,用C扩展Python成为提高Python性能常用方法,Cython算是较为常见的一种扩展方式。
Python的文件类型介绍:
-
.py python的源代码文件
-
.pyc Python源代码import后,编译生成的字节码
-
.pyo Python源代码编译优化生成的字节码。pyo比pyc并没有优化多少,只是去掉了断言
-
.pyd Python的动态链接库(Windows平台)
-
.py, .pyc, .pyo 运行速度几乎无差别,只是pyc, pyo文件加载的速度更快,不能用文本编辑器查看内容,反编译不太容易
2.Cython性质
2.1Cython的编译流程
分两步:
1).pyx文件使用Cython被编译为.c文件;
2).c文件使用C编译器生成.pyd(windos)或.so(linux)文件。
所以在编写的过程中,只需要编写.pyx脚本,这个脚本中,你既可以使用python函数也可以使用C语言函数
3.pyx的使用:
-
cimport 是 Cython 中用来引入 .pxd 文件的命令。有关 .pxd 文件,可以简单理解成 C/C++ 中用来写声明的头文件,更具体的我会在后面写到。这里引入的两个是 Cython 预置的。
-
Cython 的函数使用 cdef 定义,并且他可以给所有参数以及返回值指定类型。比方说,我们可以这么编写整数 min 函数:
cdef int my_min(int x, int y):
return x if x <= y else y
4.setup的编写
參考链接:https://www.jianshu.com/p/fc5025094912
参考链接:https://blog.csdn.net/ztf312/article/details/74998917
glob() 函数
返回匹配指定模式的文件名或目录。
该函数返回一个包含有匹配文件 / 目录的数组。如果出错返回 false。
encode()和decode()函数
和如何把如乱码般的字符串转成中文。
encode()和decode()都是字符串的函数,可直接查看关于python字符串章节的官方文档:
https://docs.python.org/3/library/stdtypes.html?highlight=encode#string-methods
从英文意思上看,encode和decode分别指编码和解码。在python中,Unicode类型是作为编码的基础类型,即:
decode | encode
str ---------> str(Unicode) ---------> str
>>> u = '中文' # 指定字符串类型对象u
>>> str1 = u.encode('gb2312') # 以gb2312编码对u进行编码,获得bytes类型对象
>>> print(str1)
b'\xd6\xd0\xce\xc4'
>>> str2 = u.encode('gbk') # 以gbk编码对u进行编码,获得bytes类型对象
>>> print(str2)
b'\xd6\xd0\xce\xc4'
>>> str3 = u.encode('utf-8') # 以utf-8编码对u进行编码,获得bytes类型对象
>>> print(str3)
b'\xe4\xb8\xad\xe6\x96\x87'
>>> u1 = str1.decode('gb2312') # 以gb2312编码对字符串str进行解码,获得字符串类型对象
>>> print('u1')
'中文'
>>> u2 = str1.decode('utf-8') # 报错,因为str1是gb2312编码的
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 0: invalid continuation byte