在python中将txt文件保存为二进制文件

时间:2017-08-31 06:06:40

标签: python file controller openerp

如何生成将保存为二进制文件的txt文件。 据说它需要是一个二进制文件来调用web控制器中的文件(odoo)

2 个答案:

答案 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)