python程序报错,请进来看看,谢谢
import pysharkimport asyncio
pcap_file = 'c:/sip.cap'
capture = pyshark.FileCapture(pcap_file,display_filter='sip contains factory')
for packet in capture:
try:
if hasattr(packet, 'sip'):
field_names = packet.sip._all_fields
field_values = packet.sip._all_fields.values()
for field_name, field_value in zip(field_names, field_values):
if field_name == 'sip.msg_hdr':
print(str(field_value.split('\\xd\\xa')))
elif field_name == 'sip.msg_body':
print(field_value)
except OSError:
pass
except asyncio.TimeoutError:
pass
下面是报错信息:
Error on reading from the event loop self pipe
loop: <ProactorEventLoop running=True closed=False debug=False>
Traceback (most recent call last):
File "C:\Users\rkaura\AppData\Local\Programs\Python\Python38-32\lib\asyncio\proactor_events.py", line 777, in _loop_self_reading
f = self._proactor.recv(self._ssock, 4096)
File "C:\Users\rkaura\AppData\Local\Programs\Python\Python38-32\lib\asyncio\windows_events.py", line 445, in recv
self._register_with_iocp(conn)
File "C:\Users\rkaura\AppData\Local\Programs\Python\Python38-32\lib\asyncio\windows_events.py", line 718, in _register_with_iocp
_overlapped.CreateIoCompletionPort(obj.fileno(), self._iocp, 0, 0)
OSError: The parameter is incorrect
按照提示添加了close()还是没解决问题,大家可以在自己程序上跑下,这是链接:
https://stackoverflow.com/questions/68077720/getting-error-on-reading-from-the-event-loop-self-pipe-error 本帖最后由 isdkz 于 2022-3-4 11:13 编辑
import pyshark
import asyncio
pcap_file = 'C:/sip.cap'
capture = pyshark.FileCapture(pcap_file,display_filter='sip contains factory')
for packet in capture:
try:
if hasattr(packet, 'sip'):
field_names = packet.sip._all_fields
field_values = packet.sip._all_fields.values()
for field_name, field_value in zip(field_names, field_values):
if field_name == 'sip.msg_hdr':
print(str(field_value.split('\\xd\\xa')))
elif field_name == 'sip.msg_body':
print(field_value)
except OSError:
pass
except asyncio.TimeoutError:
pass
capture.close() # 在这里加上 capture.close()
页:
[1]