PyShark Asyn c Await RuntimeError - PullRequest
       24

PyShark Asyn c Await RuntimeError

0 голосов
/ 08 марта 2020

Я пытаюсь предотвратить эту ошибку времени выполнения из-за нескольких показаний 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()
...