首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python 2.7中的字符串格式字节数组

Python 2.7中的字符串格式字节数组
EN

Stack Overflow用户
提问于 2018-10-23 03:27:42
回答 3查看 876关注 0票数 0

我是python的新手,目前正在使用pyserial,我主要做的是通过UART发送简单的命令。我有一个简单的命令:

代码语言:javascript
复制
b'page 0\xff\xff\xff'

这基本上是对硬件说“转到索引为0的页面”(这是一个Nextion display)。我想要做的是以某种方式参数化这个字节数组,以便能够动态地传递。我在互联网上读过不同的主题,先是让它成为一个字符串,然后使用字节数组,但我想知道是否不能使用字符串插值或其他方法在这里应用它。

注释:末尾的\xff是特定于硬件的,并且必须在那里。

EN

回答 3

Stack Overflow用户

发布于 2018-10-23 03:35:22

你看过python中的字符串格式文档了吗?

代码语言:javascript
复制
pageNum = 0
b'page {}\xff\xff\xff'.format(pageNum)

https://docs.python.org/3.4/library/string.html#string-formatting

票数 1
EN

Stack Overflow用户

发布于 2018-10-24 05:57:16

如果有人仍然对我是如何实现我的目标感兴趣的,我得到了以下解决方案:

代码语言:javascript
复制
def __formatted_page_command(self, pageId): 
    # This is the representation of 'page 0\xff\xff\xff'. What we do here is to dynamically assign the page id. 
    commandAsBytesArray = [0x70,0x61,0x67,0x65,0x20,0x30,0xff, 0xff, 0xff] 
    commandAsBytesArray[5] = ord(str(pageId)) 
    return bytes(commandAsBytesArray)

因此,通过这种方式,我可以动态获取:

代码语言:javascript
复制
b'page 0\xff\xff\xff'
b'page 1\xff\xff\xff'
b'page 2\xff\xff\xff'

只要打个电话

代码语言:javascript
复制
self.__formatted_page_command(myPageId)
票数 0
EN

Stack Overflow用户

发布于 2019-09-27 13:07:31

我在搜索其他东西,但在结果中找到了这个。我情不自禁地添加了一个对我来说如此标准的解决方案。

在Python2中,有一个比.format更快的低级格式化结构,它以内置字符串的mod操作符%的形式内置到语言中。有人告诉我,它要么与C的stdlib printf风格共享代码,要么模仿C的stdlib printf风格。

代码语言:javascript
复制
# you're pretty screwed if you have > 255 pages
# or if you're trying to go to the last page dynamically with -1
assert 0 <= pageId <= 0xff, "page out of range"
return b'page %s\xff\xff\xff' % pageId

虽然有other options,但我更喜欢老式的简单。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52936484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档