我顺序记录来自多个流的数据包.
根据每个数据包中的数据,我需要将数据写入特定的日志文件.
我一次最多打开8个文件,以满足最多8个并发数据流的需求
日志文件在新数据流的开始和结束时打开和关闭.
我已经提出以下代码来处理写操作.
#Identify where the data needs to be stored
filePointer = unpack_from('!B',payload, 4)
#Grab the data
capData = unpack_from('!160s', payload, 10)
#Store the data
if filePointer[0] == 1: Logfile1.write(str(capData[0]))
elif filePointer[0] == 2: Logfile2.write(str(capData[0]))
elif filePointer[0] == 3: Logfile3.write(str(capData[0]))
elif filePointer[0] == 4: Logfile4.write(str(capData[0]))
elif filePointer[0] == 5: Logfile5.write(str(capData[0]))
elif filePointer[0] == 6: Logfile6.write(str(capData[0]))
elif filePointer[0] == 7: Logfile7.write(str(capData[0]))
elif filePointer[0] == 8: Logfile8.write(str(capData[0]))
有没有更好的pythony方式来做到这一点?
变量可以以某种方式用于组成文件句柄或返回所需的文件句柄吗?
干杯
POB
最佳答案 您可以构建文件列表字典并使用它来动态选择文件:
d = {1: Logfile1, 2: Logfile2, ...}
curr_file = d[filePointer[0]]
curr_file.write(str(capData[0]))