scapy
scapy copied to clipboard
Pcapreader() does not work with PosixPath from Python's pathlib
Brief description
Pcapreader() is expecting the fname parameter to be in str. However, after the release of pathlib in Python 3.4, file paths can exist as PosixPath or WindowsPath instances on Unix or Windows OS, respectively.
Scapy version
2.4.5
Python version
3.8
Operating system
Ubuntu 20.04
Additional environment information
No response
How to reproduce
from pathlib import Path
from scapy.all import *
pcap_file = Path('/home/my/network_traffic.pcap')
cap = PcapReader(pcap_file)
Actual result
Traceback (most recent call last):
File "preprocess_scapy.py", line 4
cap = PcapReader(pcap_file)
File "/home/my/.venv/pcap/lib/python3.8/site-packages/scapy/utils.py", line 1151, in __call__
filename, fdesc, magic = cls.open(filename)
File "/home/my/.venv/pcap/lib/python3.8/site-packages/scapy/utils.py", line 1189, in open
magic = fdesc.read(4)
AttributeError: 'PosixPath' object has no attribute 'read'
Expected result
No response
Related resources
No response