как найти слово в текстовом файле - PullRequest
0 голосов
/ 24 мая 2019

Я использую micropython, и я хочу найти essid и пароль в моем текстовом файле и изменить настройки Wi-Fi.

и мой setting.text

"\ n ----------- Время ----------- \ nt = (2019,5,23,4,40,00,4,143) \ n - ---------- Wifi ----------- \ n w_e = any-wifi-name \ n w_p = любой-wifi-пароль \ n -------- --Wifi_new ---------- \ n w_n_e = wifi_name \ n w_n_p = wifi_password \ n --------- Nodemcu_wifi --------- \ n n_e = KENOK KENOK \ n n_p = 123456789000 \ n ----------- Конец ----------- \ n "


----------- Время -----------

t = (2019,5,23,4,40,00,4,143)

----------- Wifi -----------

w_e = any-wifi-nam

w_p = any-wifi-пароль

----------- Wifi_new -----------

w_n_e = wifi_name

w_n_p = wifi_password

----------- Nodemcu_wifi -----------

n_e = KENOK KENOK

n_p = 123456789000

----------- Конец -----------

я хочу найти w_e = **********. только звезда (любой wifi essid) без w_e =. как найти? мой код не работает. как это исправить?


def wifi_connect():
file = open("setting.text" , "r")
wifi_essid =re.sub(r'[w_e=]+.+\n$'," ",file.read())
print(wifi_essid)
...
...
...
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True) 
sta_if.connect(wifi_essid,wifi_password)
return

1 Ответ

0 голосов
/ 24 мая 2019

Без использования регулярного выражения - перебрать файл;найдите строку, которая начинается с 'w_e=';извлеките эссид из этой строки с помощью среза.

with open("setting.text" , "r") as f:
    for line in f:
        if line.startswith('w_e='):
            line = line.strip()
            essid = line[4:]
            print(essid)
            break

Используя r'w_e=(.*)$' для шаблона регулярного выражения:

pattern = r'w_e=(.*)$'

with open("setting.text" , "r") as f:
    text = f.read()
m = re.search(pattern, text, flags=re.M)
if m:
    print(m.group(1))
else:
    print('no match!')
...