Python3几个常见问题的处理方法

yipeiwu_com6年前Python基础

1. 编码问题:

遇到了几个字符串转换问题,总结如下:

# str to bytes 
str.encode(s)
# bytes to str 
bytes.decode(b)

判断编码方式可用chardet模块的chardet.detect(content)来协助。

2. char *有地址取内容:

strcontent = string_at(addr, -1)

3. 从动态链接库中获取函数并调用ctypes

from ctypes import *
dll = CDLL("YourAPP.dll")
dll.YourFunction()

4. 从dll中调用c程序,返回char*的情况处理

本来在32位下用string_at就可以解决,但是换成64位后内存访问出错。所以改用restype,终于解决。

#32位可行,64位出错:
result = dll.function()
result = string_at(result, -1)
print(result)
#后来改成用restype,32位/64位通用
dll.function.restype = c_char_p
result = dll.function()
print(result)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对【听图阁-专注于Python设计】的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

Python插件virtualenv搭建虚拟环境

Python插件virtualenv搭建虚拟环境

这里想象一下需求,写一个项目使用的一系列1.0版本的插件,现在要新写一个项目,需要用这些插件的2.0版本,该怎么办?都更新成2.0版本?这样之前的项目都没法维护了 这时我们需要一个虚拟环...

python3 对list中每个元素进行处理的方法

在写代码过程中我们常常可能会遇到这样一种情况,要对一个list中的每个元素做同样的操作时,两种方法 方法一:循环遍历每个元素 话不多说,上代码 a = [1,2,3] for i...

Python序列类型的打包和解包实例

打包 如给出一系列由逗号分隔的表达式,他们将被视为一个单独元组,即使没有提供封闭的圆括号 如: numbers = 1, 2, 3, 4 使numbers被赋值元组(1, 2, 3...

使用python实现数组、链表、队列、栈的方法

使用python实现数组、链表、队列、栈的方法

引言 什么是数据结构? 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中...

最近Python有点火? 给你7个学习它的理由!

最近Python有点火? 给你7个学习它的理由!

Python 是一门更注重可读性和效率的语言,尤其是相较于 Java,PHP 以及 C++ 这样的语言,它的这两个优势让其在开发者中大受欢迎。 诚然,它有点老了,但仍是80后啊 —— 至...