Форум сайта python.su
Уж извините, второй раз за день В этот раз все проверил, из того что понимал.
Читаю про модуль re для замены им awk и sed. Интересует один момент - замена того, что не совпадает с паттерном. Пример:
Исходный файл:
12345678
12345678
wer
111111111111111111111111111111111111111111
99999
wer2
aj;df;sdf
afsdf
sdfsdfsdfsdfsdf
1
2
3
###############
@#@*&#^@(*#^@(*#
!!!!!!!!!!!!(((
adfsfaваыаываУУКУКУК
ыва23$$3ddddd
import re allowed = list("123") src = 'test' with open(src) as f: for lines in f.readlines(): new = re.sub('[^allowed]', "*", lines) print(new.replace('\n', '')) print(allowed)
*********
*********
we**
*******************************************
******
we***
a**d***d**
a**d**
*d**d**d**d**d**
**
**
**
****************
*****************
****************
ad***a***************
********ddddd*
['1', '2', '3']
Отредактировано Endore (Янв. 20, 2018 20:48:04)
Офлайн
ты создаешь паттерн, неправильно.
new = re.sub('[^allowed]', "*", lines)
new = re.sub('[{}]'.format(allowed), "*", lines)
Офлайн
RomissevdСпасибо, идею понял, но:
ты создаешь паттерн, неправильно.
import re allowed = list("123") src = 'test' with open(src) as f: for lines in f.readlines(): new = re.sub('[^{}]'.format(allowed), "*", lines) print(new.replace('\n', ''))
12345678
12345678
wer
111111111111111111111111111111111111111111
99999
wer2
aj;df;sdf
afsdf
sdfsdfsdfsdfsdf
1
2
3
###############
@#@*&#^@(*#^@(*#
!!!!!!!!!!!!(((
adfsfaваыаываУУКУКУК
ыва23$$3ddddd
Отредактировано Endore (Янв. 20, 2018 21:14:16)
Офлайн
import re allowed = "123" src = 'test' with open(src) as f: for lines in f.readlines(): new = re.sub('[{}]'.format(allowed), "*", lines) print(new.replace('\n', ''))
Офлайн
Romissevd
ааа, вот оно что. Значит списки нельзя использовать в качестве паттерна. Теперь понятно, спасибо большое!
Офлайн