Python, hur packar man element i en lista mha struct.pack
Postat: 28 aug 2007, 10:44
Hej,
jag har ett problem som jag inte hittar någon bra lösning på.
Jag behöver skicka binärt data via sockets i python. Mha struct kan man packa oilka datatyper till en sträng, men hur får man en "lista av floats" in i pack
from struct import *
SeqNo=3
Command=23
TempArrayInitial = [1.0, 2.0, 3.0, 4.0, 5.0]
line=pack('I5fI',SeqNo,TempArrayInitial,Command)
Här får jag ett runtimefel som säger att formatmasken måste vara lika som antalet variabler:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python25\lib\struct.py", line 63, in pack
return o.pack(*args)
struct.error: pack requires exactly 7 arguments
Jag kan visserligen göra det i flera steg, men helst inte:
from struct import *
SeqNo=3
Command=23
TempArrayInitial = [1.0, 2.0, 3.0, 4.0, 5.0]
line=pack('I',SeqNo)
for aTemp in TempArrayInitial:
line +=pack('f',aTemp)
line +=pack('I',Command)
Tack på förhand!
jag har ett problem som jag inte hittar någon bra lösning på.
Jag behöver skicka binärt data via sockets i python. Mha struct kan man packa oilka datatyper till en sträng, men hur får man en "lista av floats" in i pack
from struct import *
SeqNo=3
Command=23
TempArrayInitial = [1.0, 2.0, 3.0, 4.0, 5.0]
line=pack('I5fI',SeqNo,TempArrayInitial,Command)
Här får jag ett runtimefel som säger att formatmasken måste vara lika som antalet variabler:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python25\lib\struct.py", line 63, in pack
return o.pack(*args)
struct.error: pack requires exactly 7 arguments
Jag kan visserligen göra det i flera steg, men helst inte:
from struct import *
SeqNo=3
Command=23
TempArrayInitial = [1.0, 2.0, 3.0, 4.0, 5.0]
line=pack('I',SeqNo)
for aTemp in TempArrayInitial:
line +=pack('f',aTemp)
line +=pack('I',Command)
Tack på förhand!