Python中相当于Ruby的pack函数的实现

2 投票
2 回答
1385 浏览
提问于 2025-04-15 18:04

我正在把一些旧的Ruby脚本转换成Python,但我找不到一个在Python中对应Ruby的函数:http://www.ruby-doc.org/core/classes/Array.src/M002222.html - 这个函数可以保持数组的小端字节顺序。有没有什么Python模块可以帮我解决这个问题?

2 个回答

1

Python中的memoryview是一个内置功能,它可以让你把一个数组或者任何类似字节的对象转换成不同的字节序。你可以查看.cast方法。memoryview的一个很棒的地方是,它在操作时不需要复制字节:它和原始数据结构共享内存。

1

Python的标准库里有一个叫做array的模块,它的功能和Ruby的pack函数有点相似,但并不是完全一样。这个模块不强制使用特定的字节顺序(你可以用byteswap这个方法来交换字节顺序),而且它本身也不会把数据当作“字符串”来处理(你可以用tostringfromstring这两个方法在字符串和其他格式之间转换)。所以,具体要不要用这个模块,还是要看你是怎么使用Ruby的pack函数的。

撰写回答