В сообщении об ошибке уже сообщается, что произошло.Вам нужна строка для функции pcap()
, а не объект файла.Чтобы это исправить, попробуйте
pcap.pcap(io.open(STDIN_ALIAS, 'r').read())
Но я не уверен, что это сработает, поскольку ваш файл может быть двоичным, а не текстовым.В таком случае вам может потребоваться открыть с 'rb'
вместо 'r'
flag и впоследствии выполнить некоторое преобразование (особенно если вы используете Python 3 вместо Python 2.7).
Я вижу еще одну проблему: вашкод не является переносимым, так как зависит от этого:
STDIN_ALIAS = '/proc/self/fd/0'
Питонный способ чтения стандартного ввода данных заключается в следующем (см. Чтение двоичных данных из стандартного ввода )
import sys
string = sys.stdin.read()