Я хочу прочитать текстовый файл и найти слова, начинающиеся с 5 в тексте ниже.
"Status": "OK"}], "PhysicalLocationString": "rack1/chassis_u1/cpu0/pcie_slot3", "Physloc": "0003000101010005", "PlaceholderNetworkDeviceFunctions": [{"FC HBA 1": "51: 40: 2E: C0: 01: C9: 53: E8 "}, {" FC HBA 2 ":" 51: 40: 2E: C0: 01: C9: 53: EA "}]}}," PartNumber ":" P9D94A "," "SerialNumber": "MY57470DS8", "Status": {"Здоровье": "OK", "HealthRollup": "OK", "State": "Enabled"}}
Мой вывод в другом файле должен быть
51: 40: 2E: C0: 01: C9: 53: E8 51: 40: 2E: C0: 01: C9: 53: EA
вот мой код:
import re
import sys
import os
#get line
with open('/root/SDFlex/work/cookbooks/ilorest/files/OP.txt', 'r') as file:
for line in file:
re.findall(r'\b[s]:\w+', line)
matchedLine = line
break
#and write it to the file
with open('/root/SDFlex/work/cookbooks/ilorest/files/file.txt', 'w') as
file:
file.write(matchedLine)
пожалуйста помоги
Спасибо за редактирование от ᴡʜᴀᴄᴋᴀᴍᴀᴅᴏᴏᴅʟᴇ3000.
Или же:
print(" ".join(filter(lambda x: x.startswith('5'),your_string.split('"'))))
Выход:
51:40:2E:C0:01:C9:53:E8 51:40:2E:C0:01:C9:53:EA
В новых символах:
print("\n".join(filter(lambda x: x.startswith('5'),your_string.split('"'))))
Использовать шаблон
pattern = '"(5[^"]+)"'
re.findall(pattern, your_string)
Он будет искать цитату "
за которой следует 5, за которой следует что-либо, кроме цитаты, а затем заканчивается после цитаты. Группировка будет извлекать нужный вам номер.
Вы можете попробовать следующее:
" ".join(e for e in your_string.split('"') if e.startswith("5"))