python
blueman8888
这个作者很懒,什么都没留下…
展开
-
Ctypes库在python中共享内存实现方式
由于python与VC++应用存在通讯要求,故采用共享内存方式实现,前期采用mmap内存映射的方式实现,由于对结构体数据中,数据的放置顺序有讲究,所以用起来特别不方便。包括从二进制数组中解码结构体也是一个比较费劲的过程,只适合对于数据结构比较简单的方式可采取上述方式。Ctypes库中对Cpython之间的数据转换做了相应适配,对于结构体数据也可进行快速适配。所以采用VC++生成共享内存操作的dll库,python通过ctypes来调用这个dll库,即可快速实现共享内存的方式。即不用python去考虑数.原创 2022-04-08 09:16:03 · 1437 阅读 · 1 评论 -
conda配置清华源
conda配置清华源Ginkgo关注0.4612019.11.27 20:14:51字数 191阅读 18,8991. 修改为清华源直接打开cmd输入一下命令conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/con原创 2021-02-21 16:58:01 · 13191 阅读 · 0 评论 -
pyinstaller4.2源码重新编译引导程序
源码解压后,从bootloader文件下面,按shift+右键,进入shell界面。要求VS2015以上。32位指令python ./waf all --target-arch=32bit64位指令python ./waf all --target-arch=64bit原创 2021-02-10 18:48:49 · 304 阅读 · 0 评论 -
mmap内存映射文件支持
mmap --- 内存映射文件支持¶内存映射文件对象的行为既像 bytearray 又像 文件对象。 你可以在大部分接受 bytearray 的地方使用 mmap 对象;例如,你可以使用 re 模块来搜索一个内存映射文件。 你也可以通过执行 obj[index] = 97 来修改单个字节,或者通过对切片赋值来修改一个子序列: obj[i1:i2] = b'...'。 你还可以在文件的当前位置开始读取和写入数据,并使用 seek() 前往另一个位置。内存映射文件是由 mmap 构造函数创建的,其在 U.转载 2020-11-01 11:05:42 · 210 阅读 · 0 评论 -
Python 中struct 二进制与字符串格式化,共享内存中常见问题
Struct 使用注意:1.C中,结构体中,double类型 及其数组类型应该放一起。2.double类型数组不能放置在结构体最后位置。错误:class student{public: double dValue; int ID; double b[5]; char name[20]; int a[5]; student() { ID = 0; memset(name, '\0', sizeof(na...原创 2020-11-01 10:25:45 · 239 阅读 · 0 评论 -
struct将字节串解读为打包的二进制数据
struct --- 将字节串解读为打包的二进制数据¶源代码: Lib/struct.py此模块可以执行 Python 值和以 Python bytes 对象表示的 C 结构之间的转换。 这可以被用来处理存储在文件中或是从网络连接等其他来源获取的二进制数据。 它使用 格式字符串 作为 C 结构布局的精简描述以及与 Python 值的双向转换。注解默认情况下,打包给定 C 结构的结果会包含填充字节以使得所涉及的 C 类型保持正确的对齐;类似地,对齐在解包时也会被纳入考...转载 2020-11-01 10:18:32 · 479 阅读 · 0 评论