我正在尝试在python中打开一个.pcap文件。有人能帮忙吗?每次尝试此操作时,都会显示"IOError: [Errno 2] No such file or directory: 'test.pcap'"
import dpkt
f = open('test.pcap')
pcap = dpkt.pcap.Reader(f)
答案 0 :(得分:3)
尝试向open()
提供test.pcap
的正确路径:
f = open(r'C:\Users\hollandspur\Documents\test.pcap')
或其他一些......
答案 1 :(得分:0)
正如Tim上面指出的那样,您可能需要使用整个文件路径,因为您不在同一目录中。如果您从解释器运行,则可以使用以下命令检查路径:
import os
os.getcwd()
如果您不在存储文件的目录中,则需要完整的文件路径。您可以输入整个内容,或者使用更多的工作来接受相关文件路径。
import os
relativePath = 'test.pcap' # Relative directory something like '../test.pcap'
fullPath = os.path.join(os.getcwd(),relativePath) # Produces something like '/home/hallandspur/Documents/test.pcap'
f = open(fullPath)
这将允许您提供诸如"../test.pcap"
之类的路径,该路径将上升到一个目录并查找该文件。如果从命令行运行此脚本,或者您的文件位于与当前目录相近的其他目录中,则此功能特别有用。
您可能还想查看os.path.isfile(fullPath)
之类的功能,以便检查文件是否存在
答案 2 :(得分:0)
您应该读作二进制文件。请参阅'rb'参数,该参数表示将其读作二进制文件
import dpkt
f = open('test.pcap','rb')
pcap = dpkt.pcap.Reader(f)
答案 3 :(得分:-1)
我正在尝试在python中打开一个.pcap文件。有人能帮忙吗?每次尝试此操作时,都会显示
的错误消息IOError: [Errno 2] No such file or directory: 'test.pcap'
试试此代码:尝试使用此代码来克服上述错误
import dpkt,sys,os
"""
This program is open a pcap file and
count the number of packets present in it.
it also count the number of ip packet, tcp packets and udp packets.
......from irengbam tilokchan singh.
"""
counter=0
ipcounter=0
tcpcounter=0
udpcounter=0
filename=raw_input("Enter the pcap trace file:")
if os.path.isfile(filename):
print "Present: ",filename
trace=filename
else:
print "Absent: ",filename
sys.stderr.write("Cannot open file for reading\n")
sys.exit(-1)
for ts,pkt in dpkt.pcap.Reader(open(filen,'r')):
counter+=1
eth=dpkt.ethernet.Ethernet(pkt)
if eth.type!=dpkt.ethernet.ETH_TYPE_IP:
continue
ip=eth.data
ipcounter+=1
if ip.p==dpkt.ip.IP_PROTO_TCP: #ip.p == 6:
tcpcounter+=1
#tcp_analysis(ts,ip)
if ip.p==dpkt.ip.IP_PROTO_UDP: #ip.p==17:
udpcounter+=1
print "Total number of packets in the pcap file :", counter
print "Total number of ip packets :", ipcounter
print "Total number of tcp packets :", tcpcounter
print "Total number of udp packets :", udpcounter