[英]How to convert integer numbers read from a text file and store as a binary file having 16bit integers?
尝试从文本文件中读取十进制值转换为16位二进制文件并转换为二进制文件。
示例输入文件
120
300
-250
13
-120
码:
def decimaltoBinary(filename,writefile):
file = filename
print(file)
file_write = open(writefile,'wb')
file_read = open(file, 'rb')
for line in file_read:
value = int(line)
if value < 0:
binary_value = bin((2**16) - abs(value))[2:].zfill(16)
file_write.write(binary_value + "\n")
else:
binary_value = bin(int(value))[2:].zfill(16)
file_write.write(binary_value + "\n")
file_write.close()
decimaltoBinary(input_file.text,output_file.bin)
希望将转换后的十进制值写入二进制文件..非常感谢任何帮助
您可以使用struct
模块 :
data = [120,300,-250,13,-120] # you seem to have the reading part covered already
# using a list as data input for demo purposes
import struct
with open("f.bin","wb") as f:
for d in data:
f.write(struct.pack('h', d)) # 2 byte integer aka short
with open("f.bin","rb") as f:
print(f.read()) # b'x\x00,\x01\x06\xff\r\x00\x88\xff'
您只需指定'h'
即可获得短(2字节整数)打包。
对于奇怪的打印输出blame python - 它用较短的普通字符替换“已知” \\xXX
代码 - fe ',' => 0x2c
或\\r
=> \\x0d
等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.