在列表中转换二进制文件(python)

2024-09-27 07:28:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能够打开一个二进制文件,并使用中的所有字符创建一个列表(数组类型),例如:“\x21\x23\x22\x21\x22\x31”到[“\x21”、“\x23”、“\x22”、“\x21”、“\x22”、“\x31”] 什么是转换它的最佳解决方案?

谢谢!


Tags: 文件类型列表二进制数组解决方案字符x31
3条回答

您可以将二进制数据读入字符串,就像处理文本数据一样,只需确保以二进制模式打开文件(调用open()时的b标志):

with open('file.bin', 'rb') as f:
   data = f.read()

data现在将文件中的字符作为字符串包含,如"\x21\x23\x22\x21\x22\x31"

你需要理解“\x21”和“!”是两种表示同一事物的方法

所以"\x21\x23\x22\x21\x22\x31"'!#"!"1'是一样的

>>> "\x21\x23\x22\x21\x22\x31"  == '!#"!"1'
True

>>> infile = open('infile.txt', 'rb')
>>> list(infile.read())
['!', '#', '"', '!', '"', '1']
>>> ['!', '#', '"', '!', '"', '1'] == ["\x21","\x23","\x22","\x21","\x22","\x31"]
True

所以您可以看到它们是相同的,但是python总是试图选择最友好的方式来显示字符

假设myfile.txt中有'abcdef\n'。。。

>>> fh = open('myfile.txt', 'rb')
>>> list(fh.read())
['a', 'b', 'c', 'd', 'e', 'f', '\n']

相关问题 更多 >

    热门问题