Python 如何将整个十六进制文件转换为bin?

Python 如何将整个十六进制文件转换为bin?,python,hex,bin,Python,Hex,Bin,我希望利用,但不完全理解需要传递什么来简单地转换整个文件 在测试用法.py中: import os import sys from intelhex import hex2bin with open("foo.hex", "r") as fin: start = 0 end = 218 size = None pad = None print("start: {}\nend: {}\nsize: {}\npad: {}".format(start, en

我希望利用,但不完全理解需要传递什么来简单地转换整个文件

测试用法.py
中:

import os
import sys
from intelhex import hex2bin

with open("foo.hex", "r") as fin:
    start = 0
    end = 218
    size = None
    pad = None
    print("start: {}\nend: {}\nsize: {}\npad: {}".format(start, end, size, pad))
    hex2bin(fin, sys.stdout, start, end, size, pad)
错误:

start: 0
end: 218
size: None
pad: None
Traceback (most recent call last):
  File "./test-usage.py", line 19, in <module>
    hex2bin(fin, sys.stdout, start, end, size, pad)
  File "/home/me/myvenv/lib/python3.4/site-packages/intelhex/__init__.py", line 1001, in hex2bin
    h.tobinfile(fout, start, end)
  File "/home/me/myvenv/lib/python3.4/site-packages/intelhex/__init__.py", line 412, in tobinfile
    fobj.write(self._tobinstr_really(start, end, pad, size))
TypeError: must be str, not bytes


.

对python3的支持似乎还不够。使用python2创建一个新的虚拟环境(有点超出了这个问题的范围),我能够毫无错误地执行

ENV_NAME=testenv
virtualenv -p /usr/bin/python2 ${ENV_NAME}
source ${ENV_NAME}/bin/activate
pip install IntelHex==2.0
./test-usage.py

start: 0
end: 218
size: None
pad: None
#�
�  %
5
 "����/"x����u����������Τ.�����.�"��������������������������������������������������������������������������������������������������������������������������������������������������������
我还应该注意,要简单地转换整个文件,您应该将所有非文件参数保留为默认值。例如:

hex2bin(fin, sys.stdout)

寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。请定义这两种格式并给出示例数据。
hex2bin(fin, sys.stdout)