如何生成将保存为二进制文件的txt文件。 据说它需要是一个二进制文件来调用web控制器中的文件(odoo)
答案 0 :(得分:1)
# read textfile into string
with open(“mytxtfile.txt”, “r”) as txtfile
mytextstring = txtfile.read()
# change text into a binary array
binarray = ' '.join(format(ch, 'b') for ch in bytearray(mytextstring))
# save the file
with open(binfileName, 'br+') as binfile:
binfile.write(binarray)
答案 1 :(得分:1)
我还有一个任务,我需要一个包含二进制模式文本数据的文件。没有 1 和 0,只是数据“以二进制模式获取字节对象。”
当我使用 binarray = ' '.join(format(ch, 'b') for ch in bytearray(mytextstring))
尝试上述建议时,即使在为 encoding=
指定了强制 bytearray()
之后,我还是收到错误消息,指出 binarray
是一个字符串,因此它不能以二进制格式写入(对 'wb'
使用 'br+'
或 open()
模式)。
然后我去看了 Python 圣经并阅读了:
<块引用>bytearray() 然后使用 str.encode()
将字符串转换为字节。
所以我注意到我真正需要的是 str.encode()
来获取一个字节对象。问题解决了!
filename = "/path/to/file/filename.txt"
# read file as string:
f = open(filename, 'r')
mytext = f.read()
# change text into binary mode:
binarytxt = str.encode(mytext)
# save the bytes object
with open('filename_bytes.txt', 'wb') as fbinary:
fbinary.write(binarytxt)