如何在python中为文件夹中的每个文件执行tshark

2024-10-02 08:15:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有大约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)

我知道这行不通。但是现在我有点困了


Tags: 文件io命令txt脚本文件夹ospcap
2条回答

如果您只想运行外部命令,为什么要使用Python?这对于shell脚本或批处理脚本来说更有意义。(我认为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)

我自己解决了这个问题

`@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在这里没有太多意义,但我喜欢练习编码

相关问题 更多 >

    热门问题