Я новичок в python. У меня есть набор строк в нескольких текстовых файлах. Там будет более 100 файлов.
cool.add.odd.inn.txt
weather: cool.add.odd.inn
blab: name= hello.add.COPY_HI
blab: name= hello.add.ACCESS_HELLO
blab: name= hello.add.ADD_HI
blab: name= hello.add.WRITE_HI
blab: name= hello.add.WRITE
blab: name= hello.add.COPY
warm.add.minus.txt
weather: warm.add.minus
blab: name= hello.add.COPY_HI
blab: name= hello.add.ACCESS_HELLO
blab: name= hello.add.ADD_HI
blab: name= hello.add.WRITE_HI
blab: name= hello.add.WRITE
blab: name= hello.add.COPY
я создал список совпадений с шаблоном
total = ['WRITE_HI', 'COPY_HI', 'ADD_HI'] #there will more than 100 key words
Я хочу получить точное совпадение с заданным списком ввода и записать его в CSV-файл. См. Мое кодирование
state1='weather,state'
weather= os.listdir('./data/weather')
for warm in weather:
file= open('./data/weather' + warm, 'r')
ins=file.read()
state1+=warm.replace('.txt', '') + ','
for all_1 in total:
if all_1 in ins:
state1 += all_1 + '\n'
state1 += '","'
Вывод дается в формате CSV, Теперь с моим кодом я получаю частичный вывод при сравнении строк. Здесь он дает совпадение, а также с похожими словами (пример: я хочу только 'WRITE_HI' и 'COPY_HI' согласно моему списку, но он также дает 'WRITE' и 'COPY', которые в качестве одинаковых строк соответствуют, я не хочу, чтобы Мне нужен только шаблон в списке. Я слышал, что есть еще методы для сопоставления с образцом, такие как регрессионное соответствие и т. Д. c. Пожалуйста, кто-нибудь поможет мне в этом вопросе. Заранее спасибо
Output:
weather,state
cool.add.odd.inn,'WRITE_HI'
'WRITE'
'COPY_HI'
'COPY'
'ADD_HI'
warm.add.minus,'WRITE_HI'
'WRITE'
'COPY_HI'
'COPY'
'ADD_HI'
Обновление : Результат найден со следующим
def word_check(ins, total):
total=total[:]
found=[]
for match in re.finditer('\w+', ins):
if words in total:
found.append(words)
total.remove(words)
return found