python - Unable to index into a list -
i writing program read output of program, read line line , put in list.
#!/usr/bin/python import subprocess def receive(command): process = subprocess.popen(command, stdout=subprocess.pipe) lines = iter(process.stdout.readline, "") line in lines: recarr = line.split() print recarr[14] receive(["receivetest","-f=/dev/pcan32"]) the output receivetest program is:
19327481.401 receivetest: m s 0x0000000663 8 2f 00 42 02 00 e4 8a 8a 19327481.860 receivetest: m s 0x000000069e 8 00 1f 5e 28 34 83 59 1a it constant stream of messages. when split, list has range of 14 because after splitting, make sure, used:
print len(recarr) this gave me output of 14.
but whenever try print last element:
print recarr[14] i following error:
file "./cancheck.py", line 10, in receive print recarr[14] indexerror: list index out of range this caused erronious text printed @ top of list, need way of making sure program reads in lines start with
1234567.123 /^(.......\.\d{1,3}) (.*)$/ any ideas?
based on sample data provided, length of recarr 14.
14 size of list, not maximum index. final element of array, can try recarr[13] list, or recarr[-1] in general.
the reason in python, in programming languages, array indices zero-based: first element accessed recarr[0], second recarr[1], , on. so, 14th element (or last one, in case) accessed recarr[13].
so, loop this:
for line in lines: recarr = line.split() print recarr[13] # or recarr[-1]
Comments
Post a Comment