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正则表达式判断字符串是否是全部小写示例

实现代码 # -*- coding: cp936 -*- import re s1 = 'adkkdk' s2 = 'abc123efg' an = re.search('^[a...

深度定制Python的Flask框架开发环境的一些技巧总结

Flask 环境配置 你的应用程序可能需要大量的软件包才能正常的工作。如果都不需要 Flask 包的话,你有可能读错了教程。当应用程序运行的时候,你的应用程序的 环境 基本上是所有一切事...

详解Python3 对象组合zip()和回退方式*zip

详解Python3 对象组合zip()和回退方式*zip

zip即将多个可迭代对象组合为一个可迭代的对象,每次组合时都取出对应顺序的对象元素组合为元组,直到最少的对象中元素全部被组合,剩余的其他对象中未被组合的元素将被舍弃。 keys =...

django2用iframe标签完成网页内嵌播放b站视频功能

django2用iframe标签完成网页内嵌播放b站视频功能

前言: 给自己的网站中加入视频资源,有两种方法,一种是用iframe标签引用外站资源,另一种则使用video标签,获取站内资源进行视频播放。其中前者顾名思义,是将视频资源上传到视频网站...

Python探索之静态方法和类方法的区别详解

面相对象程序设计中,类方法和静态方法是经常用到的两个术语。 逻辑上讲:类方法是只能由类名调用;静态方法可以由类名或对象名进行调用。 python staticmethod and cla...