Я пытаюсь предотвратить эту ошибку времени выполнения из-за нескольких показаний pyshark.
RuntimeError: Cannot run the event loop while another loop is running
Моя программа отлично работает, кроме этого.
Я пытался использовать asyncio, но получаю вместо этой ошибки:
sys:1: RuntimeWarning: coroutine 'Capture._get_tshark_process' was never awaited
Я перефразировал код
Код
async def ObtainData(filename,status):
cap = pyshark.FileCapture(filename)
#Read File...
async def main():
createPacketFileLocation()
validFiles = validateFiles()
DataFrames =[]
for fileName in validFiles:
#If file is for testing and IS a DDOS
if "test_DDOS" in fileName:
df = await ObtainData(os.path.dirname(os.path.realpath(__file__)) + "\PacketFiles\\"+fileName, True)
df = CalculateMeanPacketsPerSecond(df)
DataFrames.append(df)
pass
elif "test_" in fileName:
df = await ObtainData(os.path.dirname(os.path.realpath(__file__)) + "\PacketFiles\\"+fileName, False)
df = CalculateMeanPacketsPerSecond(df)
DataFrames.append(df)
pass
#If file is DDOS
elif "training_DDOS_" in fileName:
df = await ObtainData(os.path.dirname(os.path.realpath(__file__)) + "\PacketFiles\\"+fileName, True)
df = CalculateMeanPacketsPerSecond(df)
DataFrames.append(df)
#File is not test or ddos so must be normal traffic
elif "training_":
df = await ObtainData(os.path.dirname(os.path.realpath(__file__)) + "\PacketFiles\\" + fileName, False)
df = CalculateMeanPacketsPerSecond(df)
DataFrames.append(df)
#File is invalid, so ignore
else:
pass
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
loop.close()