在 Python 中以 8 个字符块的形式迭代字符串

use*_*924 3 python iterator for-loop

我有很长的二进制数存储在字符串中。每8个字符(即每个8位块)代表一个ASCII字符代码。举个例子,0100100001101001是2个8位数字(01001000和01101001),它们是'H'和'i'的字符代码。所以整个事情是“Hi”的二进制表示。

我的问题是,有没有办法强制 for 循环以更大的块迭代字符串,以便我可以一次读取 8 个字母?换句话说,我希望 for 循环在每次循环迭代时为迭代器变量分配 8 个字符,而不是 1 个,以便我可以轻松确定字符串表示的字符代码。

提前致谢。

Gam*_*iac 5

只是把这个答案放进去,也许不是最合适的做事方式,但你可以使用textwrap

>>> import textwrap
>>> s = '0100100001101001'
>>> textwrap.wrap(s, 8)
['01001000', '01101001']
Run Code Online (Sandbox Code Playgroud)

  • 我在这里错过了关于该函数在用户可能不知道的情况下执行的操作的警告:“expand_tabs”、“replace_whitespace”等。 (2认同)