如何在 python 中为文件夹中的每个文件执行 tshark
How to execute tshark in python for every file in a folder
我有大约 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)
我知道这行不通。但此刻我有点卡住了。
如果您唯一需要的是 运行 外部命令,为什么要使用 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 在这里没有多大意义,但我喜欢练习编码。
我有大约 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)
我知道这行不通。但此刻我有点卡住了。
如果您唯一需要的是 运行 外部命令,为什么要使用 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 在这里没有多大意义,但我喜欢练习编码。