pycharm替换列表中的字符串
如何利用python调用编译好的dll库?
如何利用python调用编译好的dll库?
python中可使用ctypes模块调用dll文件中的库函数。
例如一个dll文件“MyDll.dll”,其函数约定的调用方式为C调用(cdecl)方式,则Python中加载该dll文件的代码如下:
若DLL函数的调用约定是标准调用约定(stdcall)方式,则DLL文件的加载代码则改为:
dll WinDLL(MyDll.dll)
下面给出几种不同类型的参数传递情况示例。
1、函数参数为数值情况
这是最简单的情况,设C语言函数声明如下:
Python中调用方式为:
2、函数参数为指针情况
设C语言函数实现代码如下:
Python中调用方式为:
也可以为:
3、函数参数为字符串情况
设C语言函数实现代码如下,其功能是对于输入pStr1赋值为“StrIn”,对于输出返回一个指向字符串常量“strOut”的指针:
Python中调用方式为:
这儿只列举了3种常见的参数传递情况,当然还包括其它的,诸如传递结构体、数值数组等类型的情况,详细情况可参考以前的文章。
如何用python写一个文件搜索器?
使用Python进行文件查找的应用场景还是比较多的,比如
获取指定目录下某个具体的文件
获取指定目录下具备指定前缀或者后缀的文件
获取指定目录下指定格式的文件
这里涉及到文件的精确查询、模糊查询、范围查询。
如何设计一个函数实现上述三种查询场景?我们主要使用了以下两个Python模块。
os 模块
Python 的 os 模块封装了常见的文件和目录操作。其中使用了以下方法:
os.walk:遍历目录。
:连接目录与文件名。
:分离文件名与扩展名。
:判断给出的路径是否是一个目录。
glob 模块
Python 的 glob 模块封装了文件查找匹配操作。其中使用了以下方法:
:返回所有匹配的文件路径列表。它只有一个参数pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径。
需要注意的是,glob 模块pathname参数在Windows下是不区分大小写的,而在Linux下是区分大小写的。
函数设计,如下:
接下来,我们试一下 该函数是否满足上述三个文件查找场景
精确查询查找D:learnconfig.yml文件
search(D:learnconfig.yml)模糊查询查找 D:learn 目录下文件名以c开头的yml文件,支持前模糊、后模糊、全模糊。
search(D:learnc*.yml)查询结果如下:
[D:learnconfig.yml, D:learnconfig1.yml]范围查询查找D:learn目录下文件格式为 .jpg 的文件
search(D:learn, .jpg)查询结果如下:
[, ]