Python:如何动态写入多个文件

我顺序记录来自多个流的数据包.

根据每个数据包中的数据,我需要将数据写入特定的日志文件.

我一次最多打开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]))
点赞