我使用以下代码将文件夹,子文件夹中的所有pcap文件转换为具有给定列的csv文件。输出的csv文件需要与输入的pcap文件具有相同的名称。代码没有任何错误。但是没有输出。如果我的代码错误,请帮助我纠正。 python 3.6
import os
import csv
import subprocess
startdir= '/root/Desktop/Files/'
outdir = '/root/Desktop/Outcsv'
suffix= '.pcap'
def decode_to_file(cmd, in_file, new_suffix):
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
fileName = outdir + '/' + in_file[len(startdir):-len(suffix)] + ".csv"
os.makedirs(os.path.dirname(fileName), exist_ok=True)
csv_writer = csv.writer(open(fileName, 'w'))
for line_bytes in proc.stdout:
line_str = line_bytes.decode('utf-8')
csv_writer.writerow(line_str.strip().split(','))
for root,dirs, files, in os.walk(startdir):
for name in files:
if name.endswith(suffix):
continue
in_file=os.path.join(root,name)
out_file = outdir + '/' + in_file[len(startdir):-len(suffix)] + ".csv"
cmd = 'tshark -r "{}" -T fields -e frame.time_delta_displayed -e frame.len -e wlan.sa - e wlan.da _E separator=, _E header=y > "{}"'.format(in_file, out_file)
csv_writer = csv.writer(open(out_file, 'w'))
print (cmd)
os.system(cmd)