Как выполнить tshark в python для каждого файла в папке - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть около 100 .pcap файлов, которые я хочу проанализировать. Я хотел бы использовать tshark для этого. Моя идея - использовать скрипт python для автоматизации этой задачи. Он должен выполнить следующую команду для каждого файла .pcap в моей папке:

tshark -r filename1.pcap -q -z io,stat,1 >> outfile1.txt

Так что для каждого filename.pcap я хочу иметь outfile.txt.

Вот мой подход :

import os
inputdir = "C:/testfolder"
command = "tshark -r *.pcap -q -z io,stat,1 >> outfile.txt"
for pcapFilename in os.listdir(inputdir):
       if not pcapFilename.endswith(".pcap"):
          continue
       os.system(command)

Я знаю, что это не работает. Но в данный момент я немного застрял.

Ответы [ 2 ]

1 голос
/ 14 февраля 2020

Почему вы используете Python, если вам нужно только запустить внешнюю команду? Это будет иметь больше смысла в качестве сценария оболочки или пакетного сценария. (Я дам вам, что Windows пакетный скрипт - отстой.)

import os
import subprocess

inputdir = "C:/testfolder"
with open("outfile.txt","w") as outfile:
    for pcapFilename in os.listdir(inputdir):
         if not pcapFilename.endswith(".pcap"):
            continue
         subprocess.run(["tshark", "-r",
             os.path.join(inputdir, pcapFilename),
             "-q", "-z", "io,stat,1"],
            stdout=outfile, check=True)
0 голосов
/ 14 февраля 2020

решил проблему сам.

`@echo off 
    set cap_files="*.pcap" 
    set cap_folder="c:\testfolder\" 
    set tshark_cmd="c:\Program Files\Wireshark\tshark" 
    echo. > %outfile% 
    for /r %cap_folder% %%f in (%cap_files%) do ( 
    echo Processing File: %%f %tshark_cmd% -r %%f -q -z io,stat,1 >> %%f.txt ) 
    echo.`

Спасибо за вашу помощь. Да python здесь не имеет особого смысла, но мне нравится заниматься кодированием.

...