Как разобрать 100 JSON от Wireshark? - PullRequest
0 голосов
/ 07 ноября 2018

Мне нужно моделировать одну программу 100 раз, мне нужно иметь одну симуляцию в час (продолжительность одной симуляции составляет 1 час). Из каждой симуляции я хочу генерировать разные json. Моя программа должна быть остановлена ​​только нажатием «выхода», я тоже пытаюсь заставить это работать:

from apscheduler.schedulers.blocking import BlockingScheduler
import os
def simulation():
    os.system("./program")
    print ("tshark -i tun0 -T ek > path/packets_one_hour.json")

scheduler = BlockingScheduler()
scheduler.add_job(some_job, 'interval', hours=1)
scheduler.start()

Моя проблема в том, что мой скрипт работает без остановки. Я не могу создать 100 различных файлов JSON. Я должен поставить quit после каждого часа, чтобы генерировать новый и другой JSON. Но я не знаю, как это сделать.

1 Ответ

0 голосов
/ 07 ноября 2018

Обращаясь к этому примеру из документации apscheduler, вы можете сделать следующее.

from datetime import datetime
import os
import threading

from apscheduler.schedulers.blocking import BlockingScheduler

def json_dump():
    # Put here your dump script
    pass


def simulation():
    os.system("./program")
    t = threading.Timer(3600, json_dump)
    t.start()


if __name__ == '__main__':
    scheduler = BlockingScheduler()
    scheduler.add_job(simulation, 'interval', hours=1, id='id_sim')
    print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C'))

    try:
        scheduler.start()
    except (KeyboardInterrupt, SystemExit):
        pass

Честно говоря, не пробовал. Дайте мне знать, если это работает.

...