0

While using dpkt to parser a UDP pcap file, got the following error message:

with open('file.pcap', 'rb') as fopen:
    pcap = dpkt.pcap.Reader(fopen)
for timestamp, buf in pcap:
    print (timestamp)

ERROR:root:Internal Python error in the inspect module. Below is the traceback from this internal error.

Traceback (most recent call last): ValueError: read of closed file

During handling of the above exception, another exception occurred:

Traceback (most recent call last): AttributeError: 'ValueError' object has no attribute 'render_traceback'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): AssertionError

Saige
  • 91
  • 2
  • 6

1 Answers1

2

The file is automatically closed when leaving the with open(...) ... block:

with open('file.pcap', 'rb') as fopen:
    # still open here
    pcap = dpkt.pcap.Reader(fopen)
    
# automatically closed here
for timestamp, buf in pcap:
    print (timestamp)

Thus, you need to put your pcap reading into the same block where the file was opened:

with open('file.pcap', 'rb') as fopen:
    pcap = dpkt.pcap.Reader(fopen)
    for timestamp, buf in pcap:
        print (timestamp)
Steffen Ullrich
  • 114,247
  • 10
  • 131
  • 172