Я последовательно записываю пакеты данных из нескольких потоков. В зависимости от данных в каждом пакете мне нужно записать данные в конкретный файл журнала. У меня будет до 8 файлов, открытых одновременно, для обеспечения максимум 8 параллельных потоков данных. Файлы журнала открываются и закрываются в начале и в конце нового потока данных.Python: как динамически писать для нескольких файлов
У меня есть следующий код для обработки операций записи.
#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
Спасибо, Дэниэл, я отдам это. Можно ли использовать эту технику для открытия файлов? – Pobbel
Конечно, вы можете попробовать что-то вроде d = {i + 1: open (f) для i, f в zip (диапазон (len (file_list)), file_list)}. Это дает вам обработчики файлов напрямую. – Daniel