Python中浮点数的主机与网络字节序转换

0 投票
1 回答
1436 浏览
提问于 2025-04-17 02:30

我有一段代码,我想把浮点数(t和u)从主机格式转换成网络格式。

    #! /usr/bin/env python
import socket
import sys, struct
x = int(sys.argv[1])
y = int(sys.argv[2])
z = socket.htons(int(sys.argv[3]))
t = float(sys.argv[4]) # I want to do (socket.htonf) or something similar but only (htonl) is there
u = float(sys.argv[5])
sys.stdout.write(struct.pack('BBhff',x,y,z,t,u))

注意:这些参数的值是在另一个文本文件里,我是这样从文件中获取这些值的。

./python.py `cat args-file` > /somewhere

我在Python方面还是个新手,任何帮助都非常感谢。

谢谢大家!

1 个回答

2

struct模块支持在格式字符串中使用字节顺序说明符。你可以在这里找到相关信息:http://docs.python.org/library/struct.html#byte-order-size-and-alignment

撰写回答