потоковая фильтрация сообщений canbus с использованием python

#python #stream #can-bus

Вопрос:

Я использую очень простой фрагмент кода для чтения txt-файла во время его записи. Вот как выглядят эти сообщения:

 2|00001A1|0009E47290      
2|00001C7|AA200680        
1|0000155|0087D35498900310
 

Первый бит равен 1 для вывода и 2 для ввода

Вторая строка-это идентификатор сообщения

Последняя строка — это данные

Я хотел бы отфильтровать сообщения по идентификатору, например: печатайте только сообщения с идентификатором 0000155, но у меня не очень большой опыт, кто-нибудь может помочь? Вот как выглядит код на данный момент:

 while True:
file = open("test.txt", "r")
x = file.read()
x = x.split("n")
print(x[-2])
 

Ответ №1:

вы можете использовать split , как показано ниже:

 # x = "1|0000155|0087D45498900310"
first_bit, second_sttring, last_string = tuple(x.split('|'))

print(first_bit)
print(second_sttring)
print(last_string)
 

Выход:

 1
0000155
0087D45498900310