Я надеюсь, что есть более компактный способ сделать это, но если нет, попробуйте:
Python 2:
$ python -c "import sys,struct; sys.stdout.write(struct.pack('f', float(sys.argv[-1])))" 1.23 >file.bin
$ od -f -An file.bin
1.23
Python3:
$ python3 -c "import sys,struct; sys.stdout.buffer.write(struct.pack('f', float(sys.argv[-1])))" 1.23 >file3.bin
$ od -f -An file3.bin
1.23
(Шляпа: Марк Дикинсон )
Как это работает
import sys,struct
Указывает Python импортировать модули sys и struct.
sys.stdout.write(struct.pack('f', float(sys.argv[-1])))
Указывает Python принять последний аргумент в командной строке,sys.argv[-1])
и, используйте float
для преобразования его в число с плавающей запятой, и struct.pack
для преобразования числа с плавающей запятой в битовую строку, и, наконец, sys.stdout.write
для отправки байтов в стандартный вывод.