有一些wireshark .cap文件。我需要将所有这些拆分为1秒的时间间隔。 我可以使用以下editcap命令拆分.cap文件。 Editcap -i时间inputfile.cap输出文件前缀
图1:分割文件输出 但是由于有许多文件我想分割;我必须分别为每个文件名分别使用此命令。这需要时间。因此,我想到编写代码来检查给定文件夹中的所有.cap文件并拆分所有文件。
例如,当我将路径指定为“ / root / Desktop / Testcap /”时,程序也应将所有.cap拆分为子文件夹(如postpost,shortcomment)。 输出(分割文件)应获得输入文件的名称,如图1所示。 这就是我写的 导入操作系统 路径='/ root / Desktop / Testcap' 对于dir.name,sub_dirs,os.walk(path)中的文件: 用于文件中的文件名: 如果filename.endswith('。cap'): os.system('editcap -i 1文件名.....') 如何从 bolted 部分完成? 谢谢
答案 0 :(得分:1)
您可以在python中完成此操作,但是find和xargs是学习和使用的好工具:
find /root/Desktop/Testcap -name ‘*.cap’ -print0 | xargs -0 -n1 -I % editcap -i % %
print0和-0用于处理文件名中的空格。
或者,如果您想在python中进行操作:
#!/usr/bin/env python
import os
startdir='.'
suffix='.cap'
for root, dirs, files in os.walk(startdir):
for name in files:
if name.endswith(suffix):
filename=os.path.join(root,name)
cmd = 'editcap -i 1 "{}" "{}"'.format(filename,filename)
print(cmd)
os.system(cmd)