从 Python 字符串中读取字节

发布于 2024-10-04 06:03:22 字数 116 浏览 2 评论 0原文

我在字符串中有十六进制数据。我需要能够逐字节解析字符串,但通过阅读文档,按字节获取数据的唯一方法是通过 f.read(1) 函数。

如何将十六进制字符的字符串解析为列表、数组或可以逐字节访问的某种结构。

I have hex data in a string. I need to be able parse the string byte by byte, but through reading the docs, the only way to get data bytewise is through the f.read(1) function.

How do I parse a string of hex characters, either into a list, or into an array, or some structure where I can access byte by byte.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

海的爱人是光 2024-10-11 06:03:22

听起来您可能真正想要的(Python 2.x)是:

from binascii import unhexlify
mystring = "a1234f"
print map(ord,unhexlify(mystring))

[161, 35, 79]

这会将每对十六进制字符转换为其整数表示形式。

在 Python 3.x 中,您可以这样做:

>>> list(unhexlify(mystring))
[161, 35, 79]

但是由于 unhexlify 的结果是一个字节字符串,因此您也可以只访问元素:

<前><代码>>>> L = unhexlify(字符串)
>>>>> L
b'\xa1#O'
>>>>>左[0]
161
>>>>>左[1]
35

还有 Python 3 bytes.fromhex() 函数:

>>> for b in bytes.fromhex(mystring):
...  print(b)
...
161
35
79

It sounds like what you might really want (Python 2.x) is:

from binascii import unhexlify
mystring = "a1234f"
print map(ord,unhexlify(mystring))

[161, 35, 79]

This converts each pair of hex characters into its integer representation.

In Python 3.x, you can do:

>>> list(unhexlify(mystring))
[161, 35, 79]

But since the result of unhexlify is a byte string, you can also just access the elements:

>>> L = unhexlify(string)
>>> L
b'\xa1#O'
>>> L[0]
161
>>> L[1]
35

There is also the Python 3 bytes.fromhex() function:

>>> for b in bytes.fromhex(mystring):
...  print(b)
...
161
35
79
烏雲後面有陽光 2024-10-11 06:03:22
a = 'somestring'
print a[0]        # first byte
print ord(a[1])   # value of second byte

(x for x in a)    # is a iterable generator
a = 'somestring'
print a[0]        # first byte
print ord(a[1])   # value of second byte

(x for x in a)    # is a iterable generator
夏末染殇 2024-10-11 06:03:22

您可以像遍历任何其他序列一样遍历字符串。

for c in 'Hello':
  print c

You can iterate through a string just as you can any other sequence.

for c in 'Hello':
  print c
星星的軌跡 2024-10-11 06:03:22
mystring = "a1234f"
data = list(mystring)

数据将是一个列表,其中每个元素都是字符串中的一个字符。

mystring = "a1234f"
data = list(mystring)

Data will be a list where each element is a character from the string.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文